KR20080080398A - 하나 이상의 프로세서와 메모리를 갖는 플랫폼 상에서객체를 처리하는 방법, 및 이 방법을 이용한 플랫폼 - Google Patents

하나 이상의 프로세서와 메모리를 갖는 플랫폼 상에서객체를 처리하는 방법, 및 이 방법을 이용한 플랫폼 Download PDF

Info

Publication number
KR20080080398A
KR20080080398A KR1020087017736A KR20087017736A KR20080080398A KR 20080080398 A KR20080080398 A KR 20080080398A KR 1020087017736 A KR1020087017736 A KR 1020087017736A KR 20087017736 A KR20087017736 A KR 20087017736A KR 20080080398 A KR20080080398 A KR 20080080398A
Authority
KR
South Korea
Prior art keywords
platform
operations
specific
basic information
processing
Prior art date
Application number
KR1020087017736A
Other languages
English (en)
Other versions
KR101391498B1 (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 디엑스오 랩스
Publication of KR20080080398A publication Critical patent/KR20080080398A/ko
Application granted granted Critical
Publication of KR101391498B1 publication Critical patent/KR101391498B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

본 발명은 하나 이상의 프로세서들 및 메모리들을 갖는 플랫폼에서, 동일한 종류의 기본 정보(254, 256, 258, 260, 154, 156, 158, 160)로 구성된 객체(55)를 처리하는 방법에 관한 것이고, 이 방법은, 처리 대상 객체(255)를 각각 N개의 기본 정보(254, 256, 258, 154, 156 및 158)로 구성되는 적어도 2개의 하부객체들(250, 251, 252 및 253)로 분해하는 단계를 포함하고, 모든 하부객체들(250, 251, 252 및 253)은 동일한 수량 N개의 기본 정보를 가지고, 상기 처리 연산은 각각의 하부객체(250, 251, 252, 253)의 기본 정보에 대하여 적어도 하나의 특정 연산들의 시퀀스를 수행하며, 본 방법은, 한편으로는 각 하부객체(250, 251, 252 및 253)에 대한 각각의 기본 정보가 적어도 한번씩 적용되고, 다른 한편으로는, 각 특정 연산에 대하여 N개의 결과들(264)이 산출되도록 각각의 하부객체에 대하여 각각의 특정 연산을 적어도 N회 수행하는 단계를 더 포함하며, 특정 연산들의 시퀀스는 시퀀스의 적어도 하나의 특정 연산(262)이 자신의 N회 적용들(262a, 262b, 262c, 262d, 262e, 262f) 중에 다른 하부객체(260, 160)의 처리에 사용된 결과를 적어도 한번 산출한다.
객체, 하부객체, 기본 정보, 연산, 플랫폼, 처리

Description

하나 이상의 프로세서와 메모리를 갖는 플랫폼 상에서 객체를 처리하는 방법, 및 이 방법을 이용한 플랫폼{METHOD FOR PROCESSING AN OBJECT ON A PLATFORM HAVING ONE OR MORE PROCESSORS AND MEMORIES, AND PLATFORM USING THE SAME}
본 발명은 하나 이상의 프로세서 및 메모리를 갖는 플랫폼 상에서 기본 정보로 구성된 객체를 처리하는 방법에 관한 것이다. 또한, 이 방법을 이용한 플랫폼에 관한 것이다.
본 설명에 있어서, 기본 정보는 하나 이상의 수치값으로 표현되는 처리 대상 정보의 요소이다. 이 정보는 8 비트 코딩, 10 비트 코딩, 또는 16 비트 부호화 코딩 등의 다양한 종류의 코딩에 따라서 코딩될 수 있다. 처리 대상 객체가 화상인 경우, 기본 정보(elementary information)는 이러한 화상의 픽셀들이 된다.
플랫폼에서 객체에 적용되는 처리는, 예를 들어, 화상 처리, 데이터 압축 및 압축해제, 오디오 처리, 신호 변복조, 측정, 데이터 분석, 데이터베이스 인덱싱 또는 검색, 컴퓨터에 의한 보기, 그래픽 처리, 시뮬레이션 또는 많은 양의 데이터를 포함하는 임의의 분야 등의 다양한 분야에 개입(intervening)할 수 있는 알고리즘에 대응한다.
프로세서와 메모리를 갖는 플랫폼에서 동일한 종류의 기본 정보로 구성된 객 체의 처리가 필요한 경우, 기본 정보, 루프, 및 대응 연산 시퀀스에 대한 처리 순서를 판정하기 위한 높은 허용도(latitude)가 존재한다.
그럼에도 불구하고, 코드 크기, 계산 시간, 메모리 액세스 속도, 메모리 크기 및 일정성(regularity)에 관한 제한은 이와 상반될 수 있으며, 주어진 알고리즘에서 플랫폼의 병렬성을 최선으로 이용하기는 곤란하다.
이 문제를 해결하기 위하여, 종래에는, 콘볼루션, 승산, 또는 상관 표의 적용 등과 같이, 물리 블록들에 대하여 다양한 처리 연산들을 수행할 수 있는 낮은 레벨의 라이브러리를 사용하는 것이 공지되어 있다. 이는 각각의 플랫폼에 대하여 이 라이브러리들의 단 1회의 최적화만을 허용한다. 그럼에도, 이 방법은 이하와 같은 많은 단점이 있다:
- 라이브러리의 크기, 및 그에 따라 코드의 크기가 크다,
- 라이브러리 호출 시에는, 상대적으로 큰 크기의 물리 블록들이 사용될 필요가 있으며, 이는 현저한 메모리 사용을 가져온다,
- 기본 정보 상의 내부 루프들이 라이브러리 내부에 위치된다면, 연산들의 시퀀스가 최적화될 수 없고, 이는 제한된 성능을 가져온다, 그리고
- 물리 블록들이 메모리에 저장되며, 이는 집약적인 메모리 사용을 가져오며, 메모리로부터 중간 데이터를 기입 및 판독하는데 많은 시간을 소비하게 한다.
또한, 프로그램 가능한 프로세서, 예를 들어, 스칼라 프로세서 형태, 벡터 신호 프로세서 형태, 신호 처리 프로세서 형태, 특히, SIMD("Single Instruction Multiple Data") 형태는 기본 정보로 이루어져 블록들, 또는 하부객체(sub-object) 들로, 즉, 기본 정보의 그룹들로 분해(decomposition)되는 객체에 알고리즘을 적용할 수 있게 한다.
종래에는, 전체 블록에 각 연산이 적용된 후, 크기를 줄일 수 있는 블록에 대하여 다음 연산이 실행된다. 실제로, 이 연산 중 일부는 블록들의 크기를 감소시켜, 후속하는 연산들이 수행되는 때에 에지 효과(edge effect)를 발생시킨다. 이어서, 공지의 프로세서로 알고리즘이 적용되는 경우, 다음 연산에 진행하기 전에 하나의 연산이 모든 블록들에 연속하여 적용되므로 다수의 메모리 액세스 연산들이 필요하며, 이 상황은 메모리 기입 및 판독을 빈번하게 일으킨다.
또한, 에지 효과를 줄이기 위하여 큰 크기의 블록들을 사용할 필요가 있으며, 따라서, 이 큰 크기의 블록들을 저장할 수 있도록 비교적 큰 크기의 메모리를 가질 필요가 있다. 또한, 루프들이 큰 수량이라는 것은, 루프와 루프 말단 시작 코드가 다수 회 존재한다는 것을 의미하며, 이에 의해, 코드의 큰 크기를 야기한다.
또한, 상관 표, 또는 국지적 변위의 적용 등의 특정 연산들은 오프셋 또는 순열(permutation)에 의한 통신 구조를 갖는 벡터 시그널링 프로세서에 통합하기에는 부적당하다.
또한, 연산이 적용되는 블록들의 크기는 연산마다 변하기 때문에, 코드가 일정성(regularity) 문제를 나타내는 것으로 알려져 있다. 따라서, 최적화가 전체 시퀀스가 아니라 블록당 하나의 연산에 제한되므로, 이러한 코드를 메모리 및/또는 계산 시간의 관점에서 최적화하기는 곤란하다.
따라서, 각각의 알고리즘과 플랫폼의 조합을 최적화하는데 상당한 양의 시간을 소모하지 않고서는, 코드의 크기, 메모리의 크기 및 요구되는 인스트럭션의 양을 최적화하는 것은 매우 곤란하다. 실제로, 각 플랫폼은 기기의 관점(예를 들어, 프로세서의 수 및 종류, 또는 메모리의 크기 및 종류)과 사용되는 언어의 관점(스칼라 프로세서의 경우 C, 벡터 신호 프로세서의 경우 어셈블리어) 쌍방에서 자신만의 특징을 갖는다.
본 발명의 목적은, 전술한 단점들 중 적어도 하나를 제거함으로써 플랫폼에서 객체의 처리를 가능하게 하는 방법을 제공하는 것이다. 특히, 본 발명은 코드의 크기, 계산 시간, 메모리 액세스 속도, 메모리 크기의 관점에서 처리의 최적화를 가능하게 한다.
이러한 최적화는 알고리즘의 계산 시간과 계산력에 필요한 전기 소모 및 메모리 크기를 감소시키며, 이에 따라, 실리콘 면적, 데이터를 감소시킨다.
또한, 실리콘 면적 등의 하드웨어 속성에 대한 경제성을 가능하게 하며, 주어진 계산 시간 동안 알고리즘의 실행에 요구되는 전기 소모를 줄인다.
본 발명은, 따라서, 하나 이상의 프로세서 및 메모리를 갖는 플랫폼에서 동일한 종류의 기본 정보로 구성되는 객체를 처리하는 방법에 관한 것으로서, 상기 방법은, 처리 대상 객체를 각각 N개의 기본 정보로 구성되는 적어도 2개의 하부객체로 분해하는 단계를 포함하며, 모든 하부객체들은 동일한 수량 N개의 기본 정보를 가지며, 처리는 각각의 하부객체의 기본 정보에 대하여 적어도 하나의 특정 연산들의 시퀀스를 수행하는 것을 포함하며, 본 방법은, 한편으로는 각 하부객체의 각 기본 정보가 적어도 한번 적용되고, 다른 한편으로는, 각 특정 연산의 N개의 결과들이 산출되도록 각각의 하부객체에 대하여 각각의 특정 연산을 적어도 N회 수행하는 단계를 더 포함하며, 특정 연산들의 시퀀스는 시퀀스의 적어도 하나의 특정 연산 k가 자신의 N회 적용을 통해서 다른 하부객체의 처리에 사용되는 결과를 적어도 한번 산출하도록 이루어진다.
바람직하게는, 특정 연산들의 시퀀스는 루프를 포함하지 않는다.
일 실시예에서, 플랫폼은 Q개의 프로세서를 포함한다. 바람직하게는, 각 하부객체의 처리는 Q개의 프로세서에 걸쳐 분산되며, 그 각각은 특정 연산 시퀀스 중 적어도 하나의 특정 연산(IS8)을 수행한다. 각 하부객체에 대하여 모든 프로세서들이 사용되도록 되며, 하부객체의 집합에 대하여 하나의 동일한 프로세서가 사용된다. 따라서, 하부객체들이 프로세서들에 지정될 필요가 없다.
바람직하게는, 하부객체를 처리하기 위해 프로세서에 의해 특정 연산이 수행되는 경우, 모든 다른 하부객체들을 처리하기 위해 동일한 프로세서에 의해 동일한 특정 연산이 또한 수행된다. 따라서, 처리가 일정하다: 특정 연산들이 프로세서들에 지정된 후, 각각의 하부객체 하부처리 연산에 대하여 주기적으로 수행된다.
바람직하게는, 처리에 필요한 루프들의 집합은 객체의 토폴로지와 플랫폼에 의존하지만, 특정 연산들의 시퀀스에는 독립적이다.
바람직하게는, 루프들은 특정 연산들의 전체 시퀀스에 걸쳐 서로에 대하여 임베드(embed)된다. 이와 같이, 루프들은 특정 연산들의 시퀀스 전체를 봉입(encapsulate)하며, 특정 연산들의 시퀀스는 루프들에 각각 둘러싸인 하부 시퀀스들로 분리되지 않는다. 마찬가지로, 전체 객체를 저장하거나 특정 연산에 대한 결과의 집합을 저장할 필요 없이, 다른 하부객체의 처리에 필요한 결과들을 임시로 저장하는 것만으로 동시에 하부객체를 처리함으로써 객체가 처리될 수 있다. 따라서, 메모리 사용이 감소된다.
바람직하게는, 하부객체들은 연속적인 기본 정보로 이루어진다. 이는 적어도 하나의 큐(queue)를 포함하는 프로세서 체인의 적용을 가능하게 한다.
이하 본 발명에 따른 큐의 개념에 대하여 정의한다.
큐는 기본 정보 또는 특정 연산의 결과를 전송 및/또는 저장하기 위하여 사용된다.
큐는 메모리를 구비하거나 이용할 수 있다.
큐는 하나 이상의 FIFO(First In First Out) 형태의 프로세서를 이용하여 구현될 수 있다.
큐는 적어도 하나의 입력 및 적어도 하나의 출력을 포함한다.
- 큐는 임의의 수단을 통해서 입력 계산 유닛과 출력 계산 유닛에 동작상 연결될 수 있다.
- 큐가 입력 계산 유닛을 출력 계산 유닛에 각각 연결하는 PR 큐처럼 행동하는 경우, 큐는 임의의 수단을 통해 PR 입력 계산 유닛과 PR 출력 계산 유닛에 동작상 연결될 수 있다.
바람직하게는, 큐는 수개의 데이터 플럭스(flux)들을 독립적으로 관리하기 위해 사용될 수 있으며, 각각의 플럭스는 판정된 특정 연산에 관련된다.
일 실시예에서, 큐에 동시에 기입 및 판독이 가능하다.
바람직하게는, 큐는 적어도 하나의 메모리 유닛을 사용하여 각각의 플럭스에 대하여 동일한 수량 NF의 데이터를 저장한다.
바람직하게는, 하부객체 생성 데이터의 처리와 동일한 데이터를 이용한 하부객체의 처리 사이에서 NF-1 개의 하부객체들이 처리되도록 하부객체들의 상대 위치 및 스크롤링 모드에 따라서 NF가 판정된다.
바람직하게는, 체인(chaining)은 계산 유닛과 큐를 구비하며, 부팅 동작의 관리를 가능하게 하는 메카니즘을 포함한다: 큐가 수평 체인의 일부이고 객체가 화상인 경우, 예를 들어, 각각의 라인의 시작에서 일정한 방식으로 큐가 초기화된다; 큐가 NF 데이터를 포함하지 않으면, 체인 내에서 큐 다음의 프로세서는, 입력으로서 출력에서 보내는 데이터를 취한다; 다음, 체인 내에서 큐 다음의 프로세서는 입력에서 큐 내의 가장 오래된 데이터를 취하고, 큐로부터 이를 제거한다.
바람직하게는, 큐는 큐 내에 입력된 순서와 동일한 순서로 데이터를 출력할 수 있도록 한다.
바람직하게는, 순환적 체인(cyclic chaining)은 일방향성이다. 바람직하게는, 순환적 체인은 계산 유닛당 입력에 하나의 링크가 존재하고, 출력에 하나의 링크가 존재한다.
따라서, 적어도 하나의 큐의 사용은, 적어도 하나의 다른 하부객체의 계산에 필요한 특정 연산들의 결과의 전송을 가능하게 한다.
큐는, 예를 들어, 마이크로프로세서를 이용하여 구현된다.
전체 설명을 통해서, "계산 유닛"과 "프로세서"라는 용어는 동일한 의미를 갖는다고 할 수 있다.
일 실시예에서, N개의 기본 정보로 이루어진 하부객체를 처리하기 위하여, 시퀀스의 각 특정 연산은 총 N회 수행되며, Q개의 프로세서들 각각에 의해 N/Q 회 수행된다. 특정 연산들의 시퀀스가 조건적 연결을 포함하는 경우, 각각의 프로세서는 이 조건적 연결을 차지하는 시퀀스의 일부를 수행한다.
일 실시예에서, 하부객체들은 적어도 하나의 차원(dimension)에 따라서 오버레이(overlay)되지 않는다. 이러한 경우, 하부객체의 처리 중에 생성되는 적어도 하나의 특정 연산 결과는 다른 하부객체의 처리 중에 사용된다.
바람직하게는, 하부객체들은 임의의 차원에 따라서 오버레이 되지 않는다. 이러한 경우, 각각의 프로세서는 계산을 반복하지 않고 100%로 사용될 수 있다.
바람직하게는, 특정 연산들의 시퀀스는 시퀀스의 적어도 하나의 특정 연산 k가 N번 적용 중에 적어도 한번 다른 하부객체를 처리하기 위해 사용되는 결과를 생성하도록 된다.
바람직하게는, 하부객체의 하나의 동일한 차원을 따라서 수개의 순환적 체인이 존재하는 경우(특히, 프로세서들이 격자에 따라서 배치되는 경우), 동일한 차원에 따른 모든 순환적 체인들 사이에서 큐가 공유된다. 바람직하게는, 각각의 하부객체의 차원에 대하여 정확하게 하나의 큐가 존재하며, 동일한 차원에 따른 모든 순환적 체인 사이에서 각각의 큐가 공유된다. 이 경우, 프로세서들 사이의 통신이 특히 간단하다. 이러한 경우, 메모리의 구성이 특히 간단하다.
본 발명은 또한 주어진 알고리즘에 있어서 알고리즘이나 메모리 크기를 변경하지 않는 반면 작은 크기의 프로세서들을 이용하여, 프로세서의 수에 비례하는 성능을 성취하도록 한다.
따라서, 본 발명은 0.09μ 공정으로 제조된 성분에 대하여 mm2 당 초당 수백억 개의 연산의 계산력을 가능하게 할 수 있다. 종래에는, 이러한 밀도로 인해, 개발하기 위해 시간이 소요되며, 알고리즘을 변경하는데 융통성이 없는, 최적화된 배선 아키텍처를 필요로 한다. 반면, 본 발명은 무척 쉽게, 따라서, 매우 짧은 시간 내에 어떠한 알고리즘도 프로그램이 가능하도록 한다.
이는 또한 단일의 성분상에서 초당 수 조의 연산의 단위의 성능에 도달할 수 있도록 한다.
이를 위하여, 본 발명은 에지 효과를 나타내는 연산들로 구성되는 처리 연산이 일정하게 이루어지도록 한다.
상기 설명된 바와 같은 방법에 의해 처리되는 객체들은, 디모자이크 연산(demosaicing operation) 전의 미처리("raw" 형태의) 화상인 것이 바람직하며, 이 경우:
- 일 대체예에서, 기본 정보는 픽셀의 절대 위치에 따라서, 예를 들어, 적색, 녹색, 또는 청색에 대응하는 수치값에 의해 표현되는 픽셀이다,
- 또 다른 대체예에서, 기본 정보는 픽셀 당 하나의 수치값으로 표현되는 픽셀들의 그룹이다(예를 들어, "베이어(Bayer)"에 대응하는 2*2의 녹색, 적색, 및 청색 픽셀들의 그룹).
객체들은 또한 가시 화상일 수 있으며, 이 경우, 기본 정보는 예를 들어 각각의 값이, 예컨대, 적색, 녹색, 및 청색의 컬러를 나타내는 3개의 수치값에 의해 표현되는 픽셀이다.
객체들은 또한 화상들, 특히, 미처리 또는 가시 화상들의 시퀀스일 수도 있으며, 이 경우, 기본 정보는 화상들의 시퀀스 중의 화상의 픽셀이다. 따라서, 객체들은, 예를 들어, 비디오에 대응한다.
객체가 화상인 경우, 화상 캡처링 장치로부터 화상이 수신되고/수신되거나 화상 렌더링 장치에 향하게 될 수 있다:
- 화상 캡처링 장치로서는, 예를 들어, 1회용 카메라, 디지털 카메라, 리플렉스 카메라(디지털 또는 비디지털), 스캐너, 팩스, 내시경, 비디오 카메라, 캠코더, 감시 카메라, 장난감, 전화기에, PDA에, 또는 컴퓨터에 통합 또는 연결된 비디오 카메라 또는 카메라, 열 카메라, 초음파 기기, MRI(magnetic resonance) 조영기, X-레이 방사선 촬영기가 있다.
- 화상 렌더링 장치로서는, 예를 들어, 스크린, 프로젝터, 텔레비전, 가상 현실 고글, 또는 프린터가 있다.
- 화상 캡처링 및 화상 렌더링 장치로서는, 예를 들어, 스캐너/팩스/프린터, 콤팩트 사진 인쇄 랩(printing lab), 비디오 회의 장치가 있다.
처리 플랫폼은 적용예에 따라서 상이한 형태를 취할 수 있다. 예를 들어, 객체가 화상인 경우, 특히, 처리 플랫폼이 이하의 장치들 중 하나에 통합되는 경우가 인용되게 된다:
- 처리된 화상들을 생성하는 화상 캡처링 장치, 예를 들어, 처리 플랫폼을 통합한 디지털 카메라,
- 처리된 화상들을 표시 또는 인쇄하는 화상 렌더링 장치, 예를 들어, 처리 플랫폼을 포함하는 비디오 프로젝터 또는 프린터,
- 이러한 요소들 상의 결점을 수정하는 복합기, 예를 들어, 처리 플랫폼을 포함하는 스캐너/프린터/팩스,
- 처리된 화상들을 생성하는 프로페셔널 화상 캡처링 장치, 예를 들어, 처리 플랫폼을 포함하는 내시경.
처리 플랫폼은 서버 상에 전체적으로 또는 부분적으로 이송될 수 있다.
알고리즘 또는 객체 처리 연산은, 예를 들어, 이에 한하지는 않지만, 객체가 화상인 경우 이하에 대응한다:
- 특히, 통계 기반의(statisticc-based) 자동 화이트 밸런스의 계산,
- 특히, 통계 기반의 자동 노출의 계산,
- 특히, 통계 기반의 자동 포커싱의 계산,
- 특히, 통계 기반의 자동 콘트라스트 향상의 계산,
- 미처리된 화상을 가시 화상으로 변환("이미지 파이프(image pipe)" 또는 "화상 신호 처리(ISP)"),
- 광학적 결함의 수정,
- 필드의 깊이의 향상,
- 특허 출원서 PCT/FR2006/050022 "Method for creating an image capturing and/or rendering device, and device obtained by this method" 및 특허 출원서 PCT/FR2006/050197 "Method for commnading an action, notably a modification of sharpness, using a digital colour image" 에 기재된 처리 연산,
- 센서 결함의 수정,
- 이미저(imager) 결함의 수정,
- 특히, 선명도 향상을 위한 처리 연산,
- 특히, 컬러 재현성(colour rendition)의 향상을 위한 처리 연산,
- 특히, 콘트라스트 재현성의 향상을 위한 처리 연산,
- 특히, 세부 재현성의 향상을 위한 처리 연산,
- 잡음 감소,
- 측정,
- 압축
- 압축해제
- 보간 또는 줌(zoom),
- 스캔, 및/또는
- 특수 효과.
본 발명에 따르면, 객체에 적용되는 처리 연산은, 소위, 특정 연산이라 하는 연산들의 시퀀스에 존재할 수 있다. 특정 연산의 결과들은 또한 기본 정보로 불리며, 객체의 기본 정보와 동일한 종류이거나 아닐 수 있다.
하부객체들은 경우에 따라서, 특히, 메모리의 크기와 종류의 관점에서, 벡터 신호 프로세서의 경우 벡터의 크기의 관점에서, 플랫폼의 특징뿐만 아니라 처리 대상 객체의 특징에 의존하는 형태와 크기를 갖는 기본 정보의 집합들이다.
일 실시예에서, 논리 블록들뿐만 아니라 객체와 하부객체들은 수개의 차원을 갖는다.
하부객체 및 논리 블록들의 차원들은 객체의 차원들의 전부 또는 일부에 대응한다. 차원들은 상이한 종류일 수 있으며, 특히, 이하와 같은 것이 있을 수 있다.
- 예를 들어, 거리, 각도, 또는 메쉬 내의 스크롤링 등의 공간
- 시간
- 예를 들어, 컬러, 주파수, 주파수 대역 등의 주파수
- 위상
- 예를 들어, 웨이블릿(wavelets)으로의 분해 또는 하이 바이트(high bytes)로의 분해와 같은, 벡터 공간 기반에 따른 분해
- 일반적으로, 임의의 토폴로지의 임의의 공간의 차원들.
이하의 비한정적인 목록은 그 차원과 함께 객체의 예들을 제공한다:
- 거리, 특히, 픽셀로 측정된 거리에 각각 대응하는 2개의 차원을 갖는 정지 화상,
- 거리에 각각 대응하는 2개의 차원을 갖는 미처리 정지 화상, 각각의 픽셀에는 컬러, 예를 들어, 적색, 녹색, 또는 청색이 구비된다,
- 거리에 각각 대응하는 2개의 차원을 갖는 정지 컬러 화상, 한 차원은 컬러 채널, 예를 들어, 적색/녹색/청색을 나타내는 주파수에 대응한다,
- 3개의 차원을 갖는 동영상, 그 중 2개의 차원은 거리, 특히, 픽셀로 측정된 거리에 대응하며, 1개의 차원은 시간에 대응한다,
- 거리에 대응하는 3개의 차원을 갖는 원근 화상,
- 3개의 차원을 갖는 원근 화상, 그 중 2개는 거리에 대응하며, 세번째는 시야각에 대응한다,
- 거리 차원들 및 가능하다면 채널 차원을 갖는 의료 화상,
- 시야각 차원들을 갖는 홀로그램,
- 더 일반적으로, 거리 및/또는 각도 및/또는 시간, 및/또는 주파수 차원을 갖는 화상,
- 시간에 대응하는 차원을 갖는 사운드,
- 시간 및 채널에 대응하는 2개의 차원을 갖는 사운드,
- 시간에, 가능하다면 주파수에, 그리고 가능하다면 공간적 위치 또는 각도에 대응하는 하나 또는 수개의 차원을 갖는 변조된 신호,
- 신호 변복조, 측정, 데이터 분석, 데이터베이스 인덱싱 또는 검색, 컴퓨터에 의한 보기, 그래픽 처리, 하나 이상의 차원에 따라 배치되는 기본 정보에 의해 나타나는 시뮬레이션,
- 더 일반적으로, 하나 이상의 차원을 갖는 객체.
본 발명에 따르면, 객체의 기본 정보는 절대 위치 및/또는 스케일, 특히, 공간 및/또는 시간 및/또는 주파수 및/또는 객체의 차원들 중 임의의 다른 하나를 가질 수 있다:
- "오디오" 객체에 대한 기본 정보는 강도에 대응할 수 있다; 이 경우, 기본 정보는 주어진 시간적 순간에 대응하는, 그리고 다중 채널 사운드의 경우, 주어진 채널에 대응하는 절대 위치를 가질 수 있다.
- "화상" 객체에 대한 기본 정보는 픽셀에 대응할 수 있으며; 이 경우, 기본 정보는 화상 내의 위치에 대응하는, 그리고 비디오 화상의 경우, 주어진 시간적 순간에 대응하는 절대 위치를 갖는다.
- "데이터 시뮬레이션" 객체에 대한 기본 정보는 상태에 대응할 수 있으며; 이 경우, 기본 정보는 메쉬 노드 및 주어진 시간적 순간에 대응하는 절대 위치를 갖는다.
- "변조된 신호" 객체에 대한 기본 정보는 강도 및/또는 위상에 대응할 수 있으며; 이 경우, 기본 정보는 주어진 시점에 대응하는, 그리고 가능하다면, 주어진 주파수 및/또는 수개의 안테나 또는 송신기가 사용되는 경우 주어진 위치에 대응하는 절대 위치를 갖는다.
적어도 하나의 차원에 따른 상대 위치 및 절대 또는 상대 스케일, 특히, 공간 및/또는 시간은 객체의 종류에 따라서 다양한 개념에 대응할 수 있다. 이들은 그 종류가 무엇이든지 임의의 2개의 블록 간에 적용된다(전술한 바와 같은 화상인 경우, 논리 블록은 특히 처리되지 않거나, 적색, 녹색, 8 비트 등일 수 있다).
객체가 정사각 픽셀을 갖는 정지 화상인 경우, 절대 또는 상대 위치는 일 실시예에서 2개의 값에 대응할 수 있으며(수직 및 수평), 절대 또는 상대 스케일은 2개의 값(수직 및 수평)에 대응할 수 있다. 객체의 최상위 라인의 픽셀들은 절대 위치로서 (0;0), (0;1), (0;2), ... 등을 가질 수 있으며, n번째 라인의 픽셀들은 절대 위치로서 (n;0), (n;1), (n;2)를 가질 수 있다. 이 경우, 이하와 같이 상대 위치들이 코딩될 수 있다: (-1;0)은 최상부를 나타내며, (0;0)는 널 변위에 대응하며, (0;1)은 우측을, (2;-2)는 2 픽셀 아래 및 2 픽셀 좌측을 나타낼 수 있다; (0.5;0.5)의 상대 스케일은 각각의 방향에서 해상도의 절반에 대응한다.
더 일반적으로, 상대 변위와 상대 스케일의 조합이 이하와 같은 방식으로 2개의 함수 f 및 g를 이용하여 코딩될 수 있다: 절대 위치 x, y의 각각의 픽셀에 대하여 (f(x;y);g(x;y)). 예를 들어, 가장 근접한 픽셀을 취하기 위하여 라운드 오프 법칙이 필요하다는 것을 주지하기 바란다. 따라서:
- 상기 상대 위치는 f(x;y) = -1 및 g(x;y) = 0으로 코딩된다
- 0.7의 상대 스케일은 f(x;y)= 0.7*(x-x0) 및 g(x;y)= 0.7*(y-y0)로 코딩되며; x0 및 y0는 절대 위치에 대한 파라미터에 대응한다;
- 디스토션 수정은 목적지 필드에 대응하는 f 및 g로 코딩된다
- YUV 4:2:2 포맷 변경, 즉, 별도의 Y, U 및 V 명도 및 색도 정보를 이용한 YYUV 는, Y1 Y2 Y3 Y4 ... 를 이용하여 Y1 Y2 xx xx Y3 Y4 xx xx 를 ... 얻기 위하여, x가 짝수인 경우 함수 f(x:y) = (x-x0)*0.5 를 이용할 수 있으며, x-x0가 홀수이고, f(y) = y-y0인 경우 (x+1 - x0)*0.5를 이용할 수 있으며; x0 및 y0는 절대 위치에 대한 파라미터에 대응한다.
이하의 예시적인 목록은 상이한 종류의 객체를 갖는 실시예의 다른 예들을 제공한다.
- 객체가 라인마다 위치된 육각형의 픽셀을 가지며, 2개의 연속적인 라인들이 반 픽셀만큼 오프셋되어 있는 정지 화상인 경우, 절대 또는 상대 위치는 2개의 값(수직 및 수평)에 대응할 수 있으며, 절대 또는 상대 스케일은 2개의 값(수직 및 수평)에 대응할 수 있다; 객체의 최상위 라인의 픽셀들은 절대 위치로서 (0;0) (0;1) (0;2) ...를 가질 수 있으며, n번째 선의 픽셀들은 절대 위치로서 홀수번째 라인이면 (n;0.5) (n;1.5) (n;2.5) ... 를 가질 수 있으며, 짝수번째 라인이면 (n;0) (n;1) (n;2) ... 를 가질 수 있다. 상대 위치는 2개의 값(수직 및 수평)에 대응할 수 있으며, 예를 들어, (-0.5;0.5)는 우측 상부를 나타내며, (0,1)은 우측을 나타내며, (-0.5;1.5)는 우측 상부 픽셀의 우측에 위치된 픽셀을 나타낸다. 그 후, (0.5;0.5)의 상대 스케일은 각각의 방향에서 해상도의 절반에 대응한다. 또한, 상대 변위와 상대 스케일의 조합은 이하의 방식으로 2개의 함수 f 및 g를 이용하여 코딩될 수 있다: 절대 위치 x, y의 각각의 픽셀에 대하여 (f(x;y); g(x;y)). 예를 들어, 가장 근접한 픽셀을 취하기 위하여 라운드 오프 법칙(rounding off rule)이 필요하다는 것을 주지하기 바란다.
- 객체가 정사각형 픽셀들을 갖는 동영상인 경우, 절대 위치 또는 상대 위치는 3개의 값(수직, 수평, 및 시간)에 대응할 수 있고, 예를 들어, (-1;0;0)는 동일한 화상에서 최상부에 위치한 픽셀을 나타내며, (0;0;-1)은 이전 화상에서 동일 위치의 픽셀을 나타내며, (2;-2;-1)은 이전 화상에서 아래로 2 픽셀 및 좌측으로 2 픽셀에 위치한 픽셀을 나타낸다. 또한, 아래와 같이 3개의 함수 f, g, h를 이용하여 상대 변위와 상대 스케일의 조합이 코딩될 수 있다: 시간 t에서 절대 위치 x, y의 각각의 픽셀에 대하여 (f(x;y;t);g(x;y;t));h(x;y;t)). 예를 들어, 가장 근접한 픽셀을 취하기 위하여 라운드 오프 법칙이 필요하다는 것을 주지하기 바란다.
- 객체가 단일 채널 사운드인 경우, 절대 위치 또는 상대 위치는 하나의 값(시간)에 대응할 수 있다; 예를 들어, (-1)은 이전 시간 단위를 나타내며, (2)는 2개의 시간 단위 후를 나타내며; 함수 f(t)는 변위와 상대 스케일의 코딩을 허용한다. 라운드 오프 법칙이 가장 근접한 시간을 취하기 위하여 사용된다.
- 객체가 다채널 사운드인 경우, 절대 위치 또는 상대 위치는 2개의 값(시간, 채널)에 대응할 수 있다; 예를 들어, (-1,0)는 동일한 채널의 이전 시간을 나타내며, (2,1)은, 예를 들어, 공간적으로 순환적인 방식으로 구성된 다음 채널에 대한 2개의 시간 단위 후를 나타낸다. 또한, 상대 변위와 상대 스케일의 조합이 2개의 함수 f, g를 이용하여 이하와 같은 방법으로 코딩될 수 있다: 채널 c에 대하여 시간 t에서 위치되는 각각의 오디오 샘플에 대하여 (f(t;c);g(t;c)). 예를 들어, 가장 근접한 픽셀을 취하기 위하여 라운드 오프 법칙이 필요하다는 것을 주지하기 바란다.
- 객체가 시뮬레이션 메쉬인 경우, 절대 위치 또는 상대 위치는 n개의 값에 대응하며, 그 각각은 메쉬의 토폴로지에 따른 공간 또는 시간적 차원에 대응한다. 또한, 상대 변위와 상대 스케일의 조합이 n개의 함수를 사용하여 코딩될 수 있다. 예를 들어, 가장 근접한 픽셀을 취하기 위하여 라운드 오프 법칙이 필요하다는 것을 주지하기 바란다.
- 객체가 변조된 신호인 경우, 절대 위치 또는 상대 위치는 각각 시간에 대응하는 n개의 값에 대응할 수 있으며, 주파수 채널(수개의 주파수의 송신 또는 수신)에 적용될 수 있으며, 공간적 차원에도 적용될 수 있다(공간적으로 위치된 수개의 송신기 또는 수신기). 또한, 상대 변위와 상대 스케일의 조합이 n 개의 함수를 이용하여 코딩될 수 있으며, 라운드 오프 법칙이 선택되어야 한다.
- 객체가 일련의 측정치인 경우, 절대 위치 또는 상대 위치는 각각 객체의 차원 중 하나에 대응하는 n개의 값에 대응할 수 있으며, 경우에 따라서는, 시간, 공간, 주파수, 위상, 또는 다른 종류일 수 있다. 또한, 상대 변위와 상대 스케일의 조합이 n개의 함수를 사용하여 코딩될 수 있으며, 라운드 오프 법칙이 선택되어야 한다.
- 객체가 차원 n인 경우, 절대 위치 또는 상대 위치는 각각 객체의 차원 중 하나에 대응하는 n개의 값들에 대응할 수 있으며, 경우에 따라서는, 시간, 공간, 주파수, 위상, 또는 다른 종류일 수 있다. 또한, 상대 변위 및 상대 스케일이 n개의 함수를 사용하여 코딩될 수 있으며, 라운드 오프 법칙이 선택되어야 한다.
오버레이 없는 상이한 종류의 하부객체들이 도 1a 내지 도 1d에 도시되어 있다. 이 도면들에서, 하나의 동일한 화상은 라인들(도 1a에서, 라인 90, 91, 92, 및 93)로, 열들(도 1b에서, 94, 95, 96, 및 97)로, 임의의 다른 형태의 하부객체들(도 1c에서, 형태 70, 71, 72, 및 73)로, 또는 직사각형들(도 1d에서, 형태 60, 61, 62, 63, 64, 65, 66, 및 67)로 분할되어 있다. 하부객체가 오버레이를 갖지 않는 경우, 필터의 계산 시 에지를 손실하지 않고서, 하부객체들의 기본 정보를 처리하도록, 하나의 마이너스의 또 다른 하부객체에 대한 기본 정보가 액세스될 필요가 있다.
따라서, 일 실시예에서, 처리 대상 객체는 차원 DO을 가지며, 객체의 차원 DO에서 선택되는 차원 DSO를 갖는 하부객체들로 분해되며, 객체의 분해는 하부객체의 차원 중 적어도 하나에 따라서, 하부객체가 오버레이를 갖지 않도록 이루어진다.
본 구성에 있어서, 2개의 하부객체들에 속하는 기본 정보를 직접 또는 간접적으로 적용하는 특정 인스트럭션들을 재계산할 필요는 없다.
바람직한 실시예에서, 본 방법은 각각의 하부객체에 대하여 각 특정 연산을 정확하게 N회 수행하는 단계를 더 포함한다. 바람직하게는, DSO는 DO와 동일하게 된다.
일 실시예에서, 본 방법은 오버레이 없이 하부객체들로 분해될 수 있도록 적어도 하나의 기본 정보를 객체에 추가하는 단계를 더 포함한다.
하부객체들로의 분해는 또한 객체에 대하여 수행되어야 하는 연산들의 시퀀스, 특히, 이 시퀀스에 존재하는 수평 또는 수직 필터의 수와 종류에 의존할 수 있다.
또한, 시퀀스의 특정 연산들 중 일부가 에지 효과를 갖는 경우, 알고리즘의 실행 중에 기본 정보가 손실되지 않도록 화상을 널(null)이 아닌 오버레이를 갖는 하부객체들로 분해할 필요가 있다. 이 구성이 도 1e 및 도 1f에 도시되어 있다: 도 1e는 연산들의 시퀀스가 각 에지 상에서 픽셀을 손실한 경우 6x6 기본 정보를 포함하는 하부객체를 나타내며, 도 1f는 100개의 기본 정보를 포함하는 객체를 나타낸다.
도 1e에 있어서, 하부객체들은 각각 36개의 기본 정보를 포함하는 4개의 직사각형(80, 82, 83, 및 84)인 것으로 도시되어 있다. 직사각형(80)은 화상의 좌측 상부에 위치하는 36개의 기본 정보로 이루어지며, 직사각형(82)은 화상의 우측 상부에 위치하는 36개의 기본 정보로 이루어진다. 따라서, 하부객체(80)와 하부객체(82) 쌍방에 대하여 8개의 기본 정보(86)가 공통이다. 또한, 하부객체(80)와 하부객체(83) 쌍방에 대하여 8개의 기본 정보(85)가 공통이다. 또한, 하부객체(82)와 하부객체(84) 쌍방에 대하여 8개의 기본 정보(88)가 공통이다. 또한, 하부객체(83)와 하부객체(84) 쌍방에 대하여 8개의 기본 정보(89)가 공통이다. 마지막으로, 4개의 하부객체(80, 82, 83, 및 84) 모두에 대하여 4개의 기본 정보(87)가 공통이다.
객체가 화상인 경우, 일 실시에에서, 상기 화상은 병렬의 직사각형 하부객체들로 분해되고, 하부객체들은, 예를 들어, 좌측에서 우측으로, 그 후 상부에서 하부로 처리된다. 플랫폼에 따라서, 하부객체들은 이하의 방법들 중 하나에 따라 선택되어 저장되고, 아래 리스트로 제한되지는 않는다:
- 작은 고속 액세스 메모리와 큰 저속 메모리를 갖는 신호 처리 프로세서의 경우, 하부객체의 크기는 저속 메모리에 액세스하지 않고 하부객체를 처리할 수 있도록 선택된다; 예를 들어, 32x32 픽셀의 정사각형에 대응하는 하부객체들을 취할 수 있다: 현재의 하부객체에 대한 계산 중에, 또한, 다음의 하부객체에 대한 계산에 대하여 필요한 데이터의 저속 메모리로부터 고속 메모리로 전달 중에 이전의 하부객체에 대한 계산의 결과가 저속 메모리에 전달된다,
- 작은 캐쉬 메모리와 큰 저속 메모리를 갖는 스칼라 프로세서의 경우, 가능한 한 캐쉬 메모리를 이용하여 하부객체의 처리를 수행할 수 있도록 하부객체의 크기가 선택되며; 예를 들어, 32x32 픽셀의 정사각형에 대응하는 하부객체 또는 1 픽셀의 하부객체 또는 4 픽셀 (2*2) 또는 N1*2 개의 하부객체를 취할 수 있으며, 특히, 미처리된 화상의 경우, "원본(raw)" 형태를 취할 수 있다.
- 벡터 신호 프로세서의 경우, 하부객체의 크기는 플랫폼이 처리하고 저장할 수 있는 벡터의 크기와 동일하거나 그 배수로서 선택되며, 예를 들어, 64개의 수평 픽셀에 대응하는 하부객체들이 취해질 수 있다.
객체가 상이한 종류의 화상인 경우, 플랫폼과 마찬가지의 방법으로 하부객체들로의 분해가 채택될 수 있다.
본 발명에 따른 방법은, 매번 동일한 수 N의 연산이 수행되기 때문에, 하부객체들에 대하여 수행되는 특정 연산들에 대한 시퀀싱 스케줄의 일정화를 가능하게 한다. 따라서, 하드웨어 아키텍처와 알고리즘이 간략화될 수 있다. 매번 N회 연산의 실행은, 이 연산들의 실행에 있어서, 연산들이 적용되는 것과 상이한 하부객체에 속하는 기본 정보가 적용된다는 사실에 의해 가능하게 된다.
이와 같이, 연산 k가 적용되는 기본 정보는 특정 연산의 종류와 하부객체들에서 기본 정보의 위치에 따라서 동일한 하부객체 또는 상이한 하부객체에 속할 수 있다.
이는 상이한 하부객체들의 경계에서 "에지 효과"의 발생을 방지한다. 실제로, N개의 특정 연산들을 이용하여 매회 N개의 결과를 산출하는 것은 하부객체의 에지에 위치된 것을 포함하여 모든 기본 정보의 처리를 강제한다. 이 경우, 연산의 실행 시, 다른 하부객체들에 속하는 기본 정보가 요청된다.
또한, 본 방법은 다음 하부객체에 대한 처리 전에 동일한 하나의 하부객체, 예를 들어, 화상의 라인에 대한 수개의 연속적인 특정 연산들의 적용을 가능하게 한다. 따라서, 다른 하부객체들의 처리에 필요한 결과들만을 메모리에 저장하여, 다음 라인으로 진행하기 전에, 하나의 라인이 판독되어 수개의 특정 연산들에 적용될 수 있기 때문에 메모리 액세스 연산의 수가 감소될 수 있다.
일 실시예에서, 플랫폼은 하부객체의 처리 중에 계산되어 또 다른 하부객체의 처리에 사용되는 특정 연산들의 결과 및/또는 기본 정보를 저장하기 위한 적어도 하나의 객체간(inter-object) 통신 메모리를 포함한다. 따라서, 중복적인 계산이 감소된다.
또 다른 실시예에서, 특정 연산들의 시퀀스는 객체의 처리 중에 동일한 데이터를 적용하는 하나의 특정 연산만을 포함한다.
이하, "통신 데이터"라 함은 수개의 하부객체들의 처리 또는 수개의 상이한 특정 연산들에 대하여 사용되는 연산의 결과들 및/또는 기본 정보를 지칭한다.
바람직하게는, 하부객체들 간의 통신 데이터는 그 크기와 계산의 수가 최소화되도록 선택되게 된다.
예를 들어, 하나의 차원에 따른 객체간 통신 데이터는, 특히, 이 차원에 따른 필터에 대한 입력 데이터뿐만 아니라, 이들이 서로에 대하여 올바로 정렬되어 있지 않다면, 필터 출력에 조합되는 데이터를 포함한다.
객체간 통신 메모리, 즉, 객체간 통신 데이터를 저장하기 위하여 사용되는 메모리는 요구되는 저장 기간 및 속도에 따라서 자연적으로 상이하다. 예를 들어, 이 메모리는 내부 하부객체 스크롤링 루프(scrolling loop)의 차원에 따른 통신을 위하여 레지스터들 및/또는 로컬 메모리로 구성될 수 있으며, 및/또는 다른 차원에 따른 통신을 위하여 로컬 및/또는 공유 메모리로 구성될 수 있다.
본 발명의 실시예 중 하나에서, 객체가 차원들 DO을 포함하는 경우, 선택된 차원 DE에 따라서 먼저 플랫폼에 기본 정보가 전송된 후, 다른 차원에 따라서 전송된다. 본 실시예에서, 하부객체들은 객체의 차원들 DO에서 선택된 차원 DSO를 가지며, DE 차원을 포함하며, 처리는 DE 차원에 따라서 수행되는 적어도 하나의 내부 하부객체 스크롤링 루프를 포함한다.
내부 루프는 하부객체를 처리하기 위한 루프에 대응하며, 이는 Q개의 프로세서를 이용하여 N개에 데이터를 처리할 수 있도록 한다.
본 실시예는, 특히, "온 더 플라이(on the fly)", 즉, 객체간 통신에 있어서 처리 연산에 사용되는 계산 유닛과 동일한 성분에 위치한 메모리를 이용하여 기본 정보가 플랫폼에 입력되는 속도에서 실시간으로 데이터를 처리하는 성분의 경우에 채택된다. 따라서, 성분의 비용은 감소되며, 메모리 액세스 시간은 계산 유닛의 수에 비례한다. 특히, 본 실시예는 스칼라, 벡터 신호, 또는 파이프라인 프로세서의 경우에 사용된다.
바람직하게는, 하부객체들은 DSO가 1과 같도록, 또는 "미처리(raw)" 화상의 경우 DSO가 2와 같도록 된다. 후자의 경우, 제2 차원에서의 내부객체의 크기는 2 이다.
바람직하게는, DE 차원에 따라서 배치된 계산 유닛들에 의해 특정 연산들이 수행된다.
바람직하게는, 각 차원에서의 하부객체의 크기는 문제의 차원에서의 프로세서들의 행렬의 크기의 배수이다.
바람직하게는, 요구되는 객체간 통신 메모리를 감소시키도록 차원 DSO는 차원 DO 중 가장 작은 것뿐만 아니라 DE 차원이다.
바람직하게는, 어떠한 차원 DO에도 하부객체들의 오버레이가 존재하지 않아, 각 기본 정보가 한 번만 처리되며, 루프가 임베드되고, 코드가 콤팩트하게 된다.
바람직하게는, 2개의 하부객체의 처리 중에 재계산이 이루어지지 않는다.
바람직하게는, 어느 기본 정보가 플랫폼에 도달하는지에 따라서 차원들과 동일한 순서로 하부객체 스크롤링 루프들이 임베드된다.
일 실시예에서, 객체가 차원 DO를 포함하는 경우, 객체의 DE 차원에 따라서 기본 정보가 플랫폼에 전송된 후, 다른 차원에 따라서 전송된다. 본 실시예에서, 하부객체들은 객체의 차원들 DO 또는 객체의 차원들 DO에서 선택되는 또는 차원들 DO-1을 포함하며, DE 차원은 포함되지 않는다. 처리는 DE 차원에 따라서 수행되는 적어도 하나의 내부 하부객체 스크롤링 루프를 더 포함한다.
또 다른 실시예에서, 각 차원 내의 하부객체들의 크기는 객체의 크기, 및/또는 플랫폼에 전송되는 기본 정보의 전송 속도, 및/또는 플랫폼의 계산 속도 및/또는 플랫폼의 메모리들 중 적어도 하나의 속도 및 크기에 따라서 판정된다.
본 실시예는, 특히, 객체간 통신에 있어서 처리 연산에 사용되는 계산 유닛과 동일한 성분에 위치한 로컬 메모리를 이용하여 기본 정보가 플랫폼에 입력되는 속도에서 "온 더 플라이(on the fly)"로 데이터를 처리하는 성분의 경우에 적합하며, DE에 대응하지 않는 하나의 차원인 DO-1에 따라서 통신 데이터의 장기간의 저장에 사용되는 더 늦은 공유 외부 메모리에 대하여 릴레이로 기능한다. 이 경우, DE 차원과 다른 차원들에 따라서, 로컬 메모리의 크기는 하부객체의 크기만큼 증가하며, 공유 메모리의 속도는 하부객체의 크기만큼 감소하며, 외부 메모리의 크기는 하부객체의 크기만큼 증가하므로, 내부 및 외부 메모리의 크기와 외부 메모리의 속도는 하부객체의 크기를 조절함으로써 조절될 수 있다. 따라서, 비용이 감소되며, 메모리의 속도는 객체의 크기에 무관하며, 객체 크기에 대하여 성분이 최적화될 수 있으며, 더 큰 크기의 객체에 대하여 외부 메모리가 재사용될 수 있다.
본 실시예는, 더 구체적으로, 기본 정보가 플랫폼에 입력되는 속도보다 느리게 기본 정보를 처리하며, 처리 연산 중에 객체를 저장하기 위해 메모리를 이용하는 성분의 경우에 채택된다. 이 경우, 그 목적은 내부 메모리의 크기와 처리 속도를 제한하여, 필요한 내부 메모리 크기, 계산 유닛의 수, 및 메모리 속도를 감소시키는 것이다.
본 실시예는, 특히, 스칼라 또는 벡터 신호 또는 파이프라인 프로세서에 적용한다.
바람직하게는, 특정 연산들은 Q보다 큰 크기 차원에 따라서 배치되는 Q개의 계산 유닛에 의해 수행된다.
바람직하게는, 각 차원에서의 하부객체들의 크기는 문제의 차원에서의 프로세서들의 행렬의 크기의 배수이다.
바람직하게는, DE 차원을 제외한 차원들 DSO은 요구되는 객체간 통신 메모리를 제한하도록 차원들 DO 중 가장 작은 것이다.
바람직하게는, 어떠한 차원들 DO에도 하부객체들의 오버레이가 존재하지 않아, 각 기본 정보를 한 번만 처리할 수 있다. 루프들은 이에 따라 임베드되며, 코드는 콤팩트하다.
바람직하게는, 작은 크기의 차원들에서 2개의 하부객체들의 처리 중에는 하부객체들의 오버레이가 없으며, 재계산이 이루어지는 반면, 큰 크기의 차원들에서는, 재계산은 한계 비용을 나타내므로 덜 중요하다.
바람직하게는, 현재 하부객체의 계산 중에, 이전 하부객체의 계산 중에 산출되는 객체간 통신 데이터는 로컬 메모리로부터 외부 메모리에 전달되며, 후속하는 하부객체의 계산에 필요한 객체간 통신 데이터는 외부 메모리로부터 로컬 메모리에 전달된다. 내부 하부객체 스크롤링 루프는 DE 차원에 따라서 실행되므로, 내부 및 외부 메모리 간의 전달은 단지 DE 차원을 배제한 차원들 DO-1에 따른 객체간 통신 데이터만이 문제된다. 따라서, 요구되는 로컬 메모리는 이 차원들 DO-1에 따른 객체간 통신 데이터의 크기의 3배에 DE 차원에 따른 객체간 통신 데이터의 크기의 1배를 더한 것으로 제한된다. 예를 들어, 화상 처리 알고리즘의 경우, 요구되는 내부 메모리 크기는 초당 수천만 픽셀을 처리하기 위하여 수백 또는 수천 바이트로 제한된다.
바람직하게는, 데이터는 이하와 같이 전송된다: 객체의 기본 정보가 외부 메모리에 저장되며, 적어도 하나의 하부객체가 공유 메모리에 존재하는 경우 하부객체들이 외부 메모리로부터 판독되며, DE 차원을 제외한 차원들 DO-1에 따른 객체간 통신 데이터가 공유 메모리로부터 판독되며, 하부객체 처리의 결과 및 DE 차원을 제외한 차원들 DO-1에 따른 객체간 통신 데이터가 공유 메모리에 기입되며, 출력에 사용되는 차원에 따른 전체 데이터가 공유 메모리에 존재하는 경우, 공유 메모리에 판독되어 활용가능하게 된다. 따라서, 전송은 예측가능하고, 간단하며, 일정하다.
바람직하게는, 어느 기본 정보가 플랫폼에 도달하는지에 따라서 차원들과 동일한 순서를 따라서 하부객체 스크롤링 루프들이 임베드된다.
벡터 신호 프로세서의 경우, 이하의 실시예들은 Q개의 계산 유닛들에 동시에 수행되는 특정 연산들의 시퀀스로 구성되는 Q개의 처리 유닛들에 대한 임의의 처리 연산에 적용할 수 있으며, 이 시퀀스는 동일한 종류의 기본 정보로 이루어지는 객체에 적용될 필요는 없다. 본 실시예는, 예컨대, 벡터 신호 프로세서의 경우, 상이한 계산 유닛들 간의 통신을 셋업하는 새로운 방법을 설명한다.
일 실시예에서, 특정 연산 중 적어도 하나의 부분이 적어도 하나의 파라미터 값을 적용하는 경우, 및 동일한 특정 연산을 동시에 계산하는 Q개의 계산 유닛들에 의해 특정 연산들이 수행되는 경우: 특정 연산들의 시퀀스는 Q개의 계산 유닛들 상에서 동시에 C개의 파라미터 값들 중 파라미터 값을 선택하는 적어도 하나의 특정 선택 연산을 포함한다. 이 선택은 적어도 하나의 기본 정보 및/또는 적어도 하나의 특정 연산 결과 및/또는 적어도 하나의 파라미터 값에 따라서 프로세서에 의해 차별화된(differentiate) 방법으로 이루어진다.
일 예에서, C 는 8이다.
상관 표를 계산하기 위하여, 예를 들어, C개의 모듈로(modulo) 표에 대한 입력 값(X)에 따라서, X의 a, b, 및 c 함수를 구하여, Q개의 스플라인 함수의 병렬 계산에 대응하는 a*X2 + b*X + c를 계산하도록 3개의 특정 선택 연산이 사용될 수 있다.
n/C의 디페이징(dephasing)에 대응하는 보간 필터 인자를 판정하기 위하여, 보간 인자를 부여하는 입력 값(n)에 따라서 특정 선택 연산이 사용될 수 있다.
절대 위치의 함수인 파라미터 값을 선택하기 위하여, 1과 C 사이의 결과를 부여하는 위치의 함수가 계산될 수 있으며, 그 후, 이 계산의 결과는 절대 위치의 파라미터 값을 부여하는 특정 선택 연산에 대한 입력에 사용된다. 따라서, 예를 들어, 위치의 디퍼징(defuzzying) 강도 함수가 채택될 수 있다.
컬러, 해상도 등에서 각각의 서로 관계된 채널에 대한 차별화된 값을 선택하기 위하여, 1과 C 사이의 위치의 함수 또한 계산될 수 있으며, 그 후, 이 계산의 결과는 절대 위치의 파라미터 값을 부여하는 특정 선택 연산의 입력에 사용된다.
종래에, 특정 연산들은 오프셋 또는 순열에 의해 데이터를 선택하는 벡터 신호 프로세서에서 알려져 있으나, 특히, C가 Q보다 작은 경우, 프로세서의 복잡도를 최적화하기 위하여 벡터 신호 프로세서는 데이터 C에 대한 간접참조(indirection)를 실행하는 것을 허용하지 않는다.
일 실시예에서, Q개의 프로세서들이 하나의 차원의 벡터에 대응하는 경우, 복제(duplication)에 의해 C개의 상수들이 Q개의 상수들의 레지스터에 확장된다: 벡터의 우측 상의 C개의 상수들, 그 후, C개의 상수들, 그 후, ....; 벡터의 구성요소들 각각의 좌측 상의 값들 C 중의 값을 선택하도록 특정 선택 연산이 사용된다.
일 실시예에서, 동일한 특정 연산을 동시에 계산하는 Q개의 계산 유닛들에 의해 특정 연산들 중 적어도 하나의 부분이 수행되는 경우: 특정 연산들의 시퀀스는, 적어도 하나의 기본 정보 및/또는 적어도 하나의 특정 연산 결과 및/또는 적어도 하나의 파라미터 값에서 구한 상대 변위에 따라서, 프로세서들에 의해 차별화된 방법으로 Q개의 계산 유닛들 상에서 동시에 C개의 데이터로부터의 데이터 선택을 수행하는 적어도 하나의 특정 선택 연산을 포함한다.
실용적인 이유로, 순환적 방법으로 연쇄된(chained) 벡터에 따라서 Q개의 계산 유닛들이 배치되는 예에서, 각 계산 유닛은 동시적이고 독립적인 방법으로 좌측의 이웃하는 C들로부터 데이터를 액세스할 수 있다.
특정 선택 연산은, 다수의 2*C 이상의 데이터로부터의 선택을 가능하게 하기 위해 조건적일 수 있다.
따라서, 예를 들어, 위치에 따른 디스토션 등의 국지적 변형이 계산될 수 있으며, 국지적으로 벡터에 적용될 수 있다. 또한, 데이터는 국지적으로 조합되어 필터를 이루고, 스케일을 변경시키거나, 국지적 변위를 적용하는 임의의 다른 연산을 수행할 수 있다.
일 실시예에서, 데이터 C 이상을 필요로 하는 변위는 적어도 하나의 균일한 변위, 뒤이어 적어도 하나의 선택 연산을 이용하여 수행되는 차별화된 국지적 변위로 분해될 수 있다. 일정한 변위는, 특히, 수개의 선택 연산의 적용에 의해 또는 통신 메모리를 이용하여 수행될 수 있다.
일 예에서, 상대 변위는 하부객체 및/또는 객체의 모든 기본 정보에 대하여 공통이다. 또 다른 예에서, 각 기본 정보에 대하여 상이하며, 하부객체 내의 기본 정보의 절대 위치 및/또는 객체 내의 하부객체의 절대 위치에 의존하거나 의존하지 않을 수 있다. 보다 일반적으로, 이러한 변위는 적어도 하나의 기본 정보에 따른 계산의 결과 및/또는 적어도 하나의 특정 연산 결과 및/또는 적어도 하나의 값이다.
일 실시예에서, 특정 연산들의 시퀀스가 적어도 하나의 특정 위치 연산을 포함하며, 객체가 차원들 DO을 포함하는 경우, 특정 위치 연산은 차원들 DO 중 하나에 따른 위치 정보를 산출한다.
위치는, 특히, 이에 한하지는 않지만, 객체 내의 기본 정보의 절대 위치, 하부객체의 위치, C 모듈로 프로세서의 위치, 멀티 스케일 데이터의 위치, 격자 또는 임의의 다른 위치에 대한 상대 위치일 수 있다.
일 실시예에서, 특정 연산들의 시퀀스는 적어도 하나의 기본 정보 및/또는 적어도 하나의 특정 연산 결과 및/또는 적어도 하나의 파라미터 값에 따라서 상대 위치를 산출하는 적어도 하나의 특정 연산을 포함한다.
특정 상대 위치 계산 연산은 따라서 특정 선택 연산 전에 사용될 수 있다.
일 예에서, 상대 위치는 하부객체 및/또는 객체에 속하는 모든 기본 정보에 대하여 공통적이다. 또 다른 예에서, 각 기본 정보마다 상이하거나, 하부객체 내의 기본 정보의 절대 위치 및/또는 객체 내의 하부객체의 절대 위치에 의존하거나 의존하지 않을 수 있다. 보다 일반적으로, 적어도 하나의 기본 정보 및/또는 적어도 하나의 특정 연산 결과 및/또는 적어도 하나의 파라미터 값에 따른 계산의 결과일 수 있다.
하부객체들의 크기, 즉, 각각의 객체 내에 존재하는 기본 정보의 수량 N은, 예를 들어, 처리 연산에 사용되는 플랫폼의 아키텍처에 따라서 판정된다. 그러므로, 일 실시예에서, 특정 연산들 중 적어도 하나의 부분이 Q개의 계산 유닛들에 의해 수행되며, Q는 N과 같거나, N의 약수이다. N이 Q의 배수라는 사실은, 모든 계산 유닛들이 동시에 계산 단계를 완료하기 때문에, 처리 연산이 더욱 일정하도록 한다.
일 실시예에서, Q개의 프로세서의 수 및 N개의 기본 정보의 수는 상이하며, 하부객체의 처리는 N/Q회 반복되는 하나의 내부 루프만을 포함한다.
따라서, 처리가 일정하며, 메모리와 사용되는 레지스터의 수가 최소화되며, 각 하부객체 내의 통신이 레지스터들로 수행되어 바람직하다.
일 실시예에서, 특히, 수십 또는 수백 개의 계산 유닛들이 존재하며, 이는 0.13μ 성분의 제조공정을 이용하여 초당 수천만 개의 픽셀의 화상에 대하여 수백 개의 연산의 계산의 수행을 가능하게 한다.
또 다른 실시예에서, 계산 유닛의 수는 수천 내지 수백만 개이며, 본 발명은 이러한 계산력을 이용하여 객체들을 처리할 수 있도록 하는 한편, 계산 유닛의 수에 비례하는 성능과 높은 프로그래밍 간략성을 유지한다.
이러한 일정성을 더 향상시키기 위하여, 특정 연산들의 수 P는 Q의 배수일 수도 있다. 일반적으로, 특정 연산들은 컴파일러에 의해 플랫폼으로부터의 업스트림에서 판정되며, 컴파일러는 특정 연산들의 수가 Q의 배수가 아니라면, 이러한 관계(특정 연산들의 수가 Q의 배수임)를 얻기 위해 효과 없이 특정 연산들을 생성하도록 구성된다. 따라서, 상이한 계산 유닛들에 대한 특정 연산들의 지정에 무관하게, 처리가 완벽하게 일정하게 된다.
본 발명의 실시예 중 하나에 있어서, 플랫폼 내의 모든 Q개의 계산 유닛들은 동일하다.
일부 특정 연산들은 파라미터들을 사용하며, 이 경우, 이 파라미터들의 값들 또한 처리된다. 이 파라미터들은, 예를 들어, 곱셈 인자일 수 있다. 이 파라마터들은, 예를 들어, 이에 한하지 않지만, 이하에 대응할 수 있다:
- 필터 인자
- 채도값
- 오프셋 값, 및/또는
- 상관 표.
일 실시예에서, 특정 연산들에 의해 사용되는 파라미터들의 값은 이러한 특정 연산들에서 직접 또는 간접적으로 적용되는 기본 정보의 하부객체들에서의 위치에 의존한다. 예를 들어, 처리 대상의 객체가 화상인 경우, 샷을 찍기 위해 사용되는 광학기기로 인해 화상에는 결점이 나타날 수 있다. 이 결점들은 일반적으로 전체 화상에 걸쳐 균일하지 않으며, 특히, 에지에서 그렇다.
이 경우, 이러한 블러링(blur)을 보상하기 위하여 모든 화상의 픽셀들에 대하여 동일한 보상 인자들이 적용되지 않을 것이다.
예를 들어, 필터에 있어서, 기본 정보 모두에 대하여 공통인 파라미터를 사용하는 것은, 균일한 방법으로 선명도의 증가를 가능하게 한다.
예를 들어, 처리 대상 객체에서의 기본 정보의 절대 위치에 의존하는 파라미터를 사용하는 것은, 필터에 있어서, 광학 결점을 보상하기 위하여 에지에서 더 크게 선명도를 증가시킨다.
예를 들어, 처리 대상 객체에서의 기본 정보의 절대 위치에 의존하는 파라미터를 사용하는 것은, 비네팅(vignetting) 수정에 있어서, 광학 결점을 보상하기 위하여 에지에서 더 높은 보상을 발생시킨다.
예를 들어, 처리 대상 객체에서의 기본 정보의 절대 위치에 의존하는 파라미터를 사용하는 것은, 디모자이크 연산에 있어서, 센서로부터 수신되는 미처리 화상에서의 "적색" 픽셀, "녹색" 픽셀, 및 "청색" 픽셀들이 상이하게 처리될 수 있도록 한다.
예를 들어, 디지털 확대 계산(줌) 또는 디스토션 수정 계산을 위하여 처리 대상의 객체에서 기본 정보의 절대 위치에 의존하는 제2 데이터, 특히, 변위(displacement)를 사용하는 것은, 픽셀들이 각각의 포인트에서 보간을 계산할 것이 요구되도록 한다.
이러한 파라미터의 종류에 따라서 파라미터의 값은:
- 알고리즘에 대하여 일정하거나, 고유할 수 있다; 이 경우, 파라미터의 값은 특히 처리 수단 또는 플랫폼에 전송될 수 있다, 및/또는
- 객체의 소스 또는 목적지에 의존할 수 있다: 예를 들어, 처리 대상 객체가 주어진 광학기기에 맞추어진 장치로부터의 화상인 경우, 파라미터의 값은 화상 내의 선명도 레벨에 대한 영향을 끼치는 광학기기의 종류에 의존할 수 있다; 이 경우, 파라미터의 값은, 특히, 처리 수단 또는 플랫폼에 전송될 수 있다, 및/또는
- 처리 대상 객체에 의존할 수 있다: 예를 들어, 처리 대상 객체가 센서로부터의 화상인 경우, 파라미터의 값은 상기 객체를 캡처하기 위하여 효과적으로 사용되는 센서의 이득에 의존할 수 있으며, 이는 화상의 잡음의 레벨에 영향을 준다; 이 경우, 파라미터의 값은, 특히, 플랫폼에 의해 송신, 선택, 또는 계산될 수 있다, 및/또는
- 객체 내에서 기본 정보의 절대 위치에 의존할 수 있다; 이 경우, 파라미터의 값은, 특히, 플랫폼에 의해 송신, 선택, 또는 계산될 수 있다, 및/또는
- 객체 내에서 구성요소의 절대 위치에 의존하지 않을 수 있다.
파라미터 값은 알고리즘의 정의와 관련하여 동시에 또는 사후에 판정될 수 있다.
특정 파라미터의 값을 알았다는 것은 객체마다, 하부객체마다, 또는 기본 정보마다 변할 수 있다.
이 경우, 일 실시예에서, 파라미터의 값은 각각의 변경시 계산된다. 또 다른 실시예에서, 사전에 또한 각각의 변경시 파라미터의 가능한 값들이 계산되며, 인덱스 또는 어드레스가 판정되어, 예를 들어, 표 내에서 파라미터의 값에 대한 액세스를 가능하도록 한다.
또 다른 실시예에서, 더 구체적으로 파라미터 값들이 채택됨으로써 하부객체의 절대 위치에 따라서 하부객체마다 값이 변하며, 예를 들어, 광학기기 선명도 특성에 대응하는 파라미터들과 같이 값의 수가 제한되어, 제한된 수의 파라미터 값의 집합들이 판정되고, 각각의 집합이 저장되며, 각각의 하부객체에 대하여, 예를 들어, 사용되어야 하는 집합의 어드레스가 주어진다면, 위치의 함수를 계산함으로써 사용되어야 하는 집합이 선택된다.
특정 연산들의 계산 유닛들에 대한 지정은 연산, 시퀀스, 및 그 계산 유닛들의 종류에 의존한다.
예를 들어, 일 실시예에서, 계산 유닛들은 특성화된다, 즉, 하나의 동일한 계산 유닛에 의해 하나의 동일한 특정 연산의 N개의 결과들이 계산된다. 특정 연산이 플랫폼의 메모리들 중 하나에 존재하는 파라미터를 호출하는 경우, 이 연산을 담당하는 계산 유닛이 처리의 시작에서 파라미터를 검색하기 위해 메모리 액세스를 수행한 후, 메모리에 다시 액세스할 필요없이 N회 연산을 적용할 수 있으므로, 특성화된 계산 유닛들의 배치라는 사실은 시간을 절약한다.
따라서, 일 실시예에서, 적어도 하나의 특정 연산이 적어도 하나의 파라미터를 적용하는 경우, 파라미터 값들 중 일부를 포함하는 메모리 유닛에 대하여 액세스하는 적어도 하나의 계산 유닛에 의해 이 특정 연산이 수행되며, 이 일부는 이 계산 유닛에 의해 수행되는 특정 연산들에 따라서 판정된다. 이러한 파라미터 값들의 저장을 위하여, 상이한 하드웨어 구성들이 존재할 수 있으며, 이하에서는 이를 설명한다. 예를 들어, 각 계산 유닛은 자신의 메모리를 가질 수 있거나, 모든 유닛들에 공통적인 메모리가 존재할 수 있거나, 심지어 계산 유닛들이 함께 그룹화되어, 각 그룹에 대한 메모리를 가질 수 있다.
일 실시예에서, 적어도 하나의 특정 연산이 적어도 하나의 파라미터를 적용하는 경우, 이 파라미터의 값은 하부객체의 위치 및/또는 처리 대상 객체에서의 기본 정보의 위치에 의존할 수 있다.
일부 연산에 있어서, 파라미터 값은 처리 대상 객체 전체에 대하여 고정되게 되는 반면, 다른 연산에 있어서는, 이 값은 위치마다 변하게 된다. 따라서, 예를 들어, 화상 블러링 수정 인자들은 위치가 화상의 중앙에 있는지 또는 에지에 있는지 여부에 따라서 다소 높을 수 있다.
처리 연산을 수행하기 위해 사용되는 플랫폼에 따라서, 계산 유닛들의 구성은 변할 수 있다. 따라서, 일 실시예에서, 연쇄된 계산 유닛들에 의해 특정 연산들이 수행된다.
실제로, 이 경우, 계산 유닛들은 "직렬로(in series)" 또는 트리에 따라서 연쇄될 수 있으며, 처리 대상 기본 정보에 대한 계산 결과들이 하나의 유닛에서 다른 유닛으로 전달된다. 이러한 구성은 처리 연산이 일정하며, 이에 의해 기본 연산의 전달이 일정하게 수행될 수 있다는 사실에 의해 가능하게 된다.
수개의 기본 정보를 동시에 처리하기 위하여, 계산 유닛들은 또한 병렬로 위치될 수 있다. 이 경우, 계산 유닛들은 상이한 기본 정보, 예컨대, 필터의 계산 결과들을 조합할 수 있도록 연쇄된다.
일 실시예에서, 상이한 프로세서들을 포함하는 성분의 연결을 가능하게 하기 위해, 하나의 차원에서의 체인에 따라서 계산 유닛들이 연쇄된다. 또 다른 실시예에서, 계산 유닛들은 적어도 하나의 순환적 체인에 따라서 연쇄된다. 기본 정보가 모든 계산 유닛들을 통해 전달되며, 특정 수의 특정 연산들을 거치고, 이어서, 다시 제1 계산 유닛에 전송되기 때문에, 후자의 실시예에서는 인터럽트되지 않은 처리 연산을 발생시킨다.
일 실시예에서, 적어도 하나의 순환적 체인에 따라서 계산 유닛들이 연쇄되는 경우, 이에 의해, 체인은 적어도 하나의 큐를 포함한다. 본 방법의 실시예는 이와 같이 구현될 수 있다.
본 발명의 또 다른 실시예에서, 하부객체가 차원들 DSO을 포함하는 경우, 각 하부객체의 차원들에 대하여 적어도 하나의 순환적 체인에 따라서 연쇄된 계산 유닛들에 의해 특정 연산들이 수행된다; 각각의 하부객체의 특정 차원 D1 각각에 대한 순환적 체인(들)은 하부객체의 특정 차원 D1에 대한 순환적 체인(들) 간에 공유되거나 공유되지 않는 적어도 하나의 큐를 포함한다.
본 방법의 실시예는 이와 같이 구현될 수 있다. 이하, 도면을 통해 더 상세하게 설명한다.
바람직하게는, 하부객체의 하나의 동일한 차원에 따른 수개의 순환적 체인이 존재하는 경우(특히, 격자에 따라서 프로세서들이 배치되는 경우), 동일한 차원에 따른 모든 순환적 체인들 사이에 큐가 공유된다. 바람직하게는, 하부객체의 차원 각각에 대하여 정확하게 하나의 큐가 존재하며, 각각의 큐는 동일한 차원에 따른 모든 순환적 체인들 사이에 공유된다.
본 발명의 또 다른 실시예에서, 하부객체가 차원들 DSO을 포함하는 경우, 적어도 하나의 순환적 체인 CC1을 통해 하부객체의 판정된 차원 DD에 따라서 연쇄된 계산 유닛들에 의해 특정 연산들이 수행된다; 상기 순환적 체인 CC1은 적어도 하나의 큐를 더 포함한다. 본 실시예에서, 본 방법은 적어도 하나의 특정 인스트럭션에 대하여, 각각의 특정 인스트럭션의 적용에 있어서, 상기 체인에 따라서 상기 계산 유닛 UC1에 이어지는 계산 유닛 UC2 또는 큐에 대하여 계산 유닛 UC1 상에서 수행되는 특정 인스트럭션의 이러한 적용의 결과를 전송하는 단계를 더 포함한다.
본 방법의 실시예는 이와 같이 구현될 수 있다.
일 실시예에서, 하부객체는 차원들 DSO를 포함하며, 적어도 하나의 순환적 체인 CC1을 통해 하부객체의 판정된 차원 DD에 따라서 연쇄된 계산 유닛들에 의해 특정 연산들이 수행된다; 상기 순환적 체인 CC1은 적어도 하나의 큐를 더 포함한다; 본 방법은 적어도 하나의 특정 연산에 대하여 상기 특정 연산의 각각의 적용에 있어서 이하의 단계를 더 포함한다:
- 계산 유닛 UC1 상에서 수행되는 특정 연산의 상기 적용의 결과를 상기 체인에 따라서 상기 계산 유닛 UC1에 이어지는 계산 유닛 UC2 또는 큐에 전송하는 단계
- 큐로부터 큐 다음의 처리 유닛 UC0에 객체 내의 하부객체의 위치에 따른 조건적 방법으로, 또 다른 하부객체의 처리 중에 큐에 전송되는 특정 인스트럭션의 적용 결과를 전송하는 단계.
일 실시예에서, 계산 유닛들은 각각 적어도 하나의 체인에 속하며, 하부객체의 차원들 각각에 속한다.
일 실시예에서, 본 방법은 적어도 2개의 특정 인스트럭션에 대하여, 2개의 특정 인스트럭션 중 하나의 각각의 적용에 있어서, 계산 유닛 UC1 상에서 수행되는 특정 인스트럭션의 상기 적용의 결과를, 각 특정 인스트럭션에 대하여 독립적인 방법으로 미리 판정되는 체인에 따라서 상기 계산 유닛 UC1에 이어지는 큐 또는 계산 유닛 UC2에 전송하는 단계를 더 포함한다. 실제로, 사용되는 체인은 특정 인스트럭션 시퀀스에 의해 실행되는 (예컨대, 수직 또는 수평) 필터의 종류에 의존한다.
일 실시예에서, 2개의 종류의 특정 연산이 존재한다:
- 이들은 체인을 적용하지 않는다,
- 또는, 체인을 체계적으로 적용한다, 즉, 이들이 수행되는 때마다; 이 경우, 상이한 프로세서들에 의해 동일한 특정 연산에 의해 적용되는 모든 체인은 동일한 차원을 따른다.
일 실시예에서, 적어도 하나의 순환적 체인에 따라서 연쇄된 계산 유닛들에 의해 특정 연산들이 수행된다; 상기 체인은 특정 연산의 결과를 상기 결과를 산출한 프로세서에 대한 체인에서 이어지는 프로세서 또는 큐에 전송할 수 있도록 한다.
일 실시예에서, 적어도 하나의 순환적 체인에 따라서 연쇄된 계산 유닛들에 의해 특정 연산들이 수행된다; 상기 파일은 적어도 하나의 다른 하부객체의 계산에 필요한 특정 연산들의 결과들의 전송을 가능하게 한다.
또 다른 실시예에서, 본 방법은 상기 하부객체에 대한 상기 다른 하부객체의 상대 위치에 따라서 또 다른 하부객체의 하부처리 연산 중에 사용되는 특정 연산들의 결과를 함께 그룹화하여 메모리에 저장하는 단계를 포함한다.
일 실시예에서, 본 방법은 또 다른 하부객체의 하부처리 중에 사용되는 특정 연산들의 결과를 적어도 하나의 큐에 함께 그룹화하는 단계를 더 포함한다.
또한, 일부 실시예에서, 본 방법은 특정 연산들의 이러한 결과들 중 적어도 하나의 부분을 메모리 또는 큐에 유지할 수 있도록 하는 인스트럭션을 플랫폼에 제공하는 단계를 더 포함한다.
처리 연산은, 물론, 이러한 플랫폼의 하드웨어 용량을 최적으로 이용하기 위하여 플랫폼의 구성에 채택되어야 한다. 이를 위하여, 일 실시예에서, 본 방법은 계산 유닛들의 체인에 따라서 또한 시퀀스에 따라서 계산 유닛들에 특정 연산들을 지정하는 단계를 포함한다. 이 단계는 또한 플랫폼으로부터의 업스트림에 위치하는 컴파일러에 의해 수행될 수 있다.
또한, 플랫폼의 용량을 최적으로 이용하기 위하여, 프로그램 가능한 계산 유닛을 이용할 수 있다, 즉, 특정 연산들의 시퀀스 및/또는 상이한 계산 유닛들에 대한 특정 연산들의 지정은 이러한 계산 유닛들을 포함하는 성분의 생성 후에 변경될 수 있다. 따라서, 일 실시예에서, 특정 연산들의 순서 및/또는 속성이 변경될 수 있다. 그러나, 계산 유닛들이 프로그램 가능할지라도, 성분의 생성의 시기에 처음 프로그램될 수 있다. 이와 같이, 본 발명의 일 실시예에서, 특정 연산들의 적어도 하나의 소정의 시퀀스에 따라서 연결된 계산 유닛들에 의해 특정 연산들이 수행된다. 본 실시예는, 예를 들어, 외부 메모리를 사용해야하는 것을 회피할 수 있다. 실제로, 알고리즘에 대하여 수행되어야 하는 연산들의 시퀀싱 스케줄을 포함하는 이러한 메모리를 갖기보다는, 객체에 적용되어야 하는 이러한 알고리즘에 대응하는 순서로 연산들이 수행되도록 계산 유닛들이 연결될 수 있다.
처리 연산이 실행되는 플랫폼은, 용량과 액세스 속도의 관점 모두에서 변하는 상이한 종류의 메모리를 가질 수 있다. 예를 들어, 특정 데이터의 즉각적인 재사용을 필요로 하는 필터와 같은 연산의 경우, 연산 결과의 단기간의 저장을 위하여 고속 메모리 및/또는 레지스터가 사용될 수 있다. 따라서, 일 실시예에서, 기본 정보 및/또는 특정 연산들의 결과들을 저장하기 위하여 제한된 용량의 메모리 유닛을 구비한 적어도 하나의 계산 유닛에 의해 적어도 하나의 특정 연산이 수행되며, 이 메모리는 적어도 16개의 기본 정보 및/또는 특정 연산들의 결과를 포함한다. 여기서, 고속 메모리는 일반적으로 제한된 용량을 가지며, 어떠한 경우는, 더 많은 기본 정보 및/또는 특정 연산들의 결과를 저장하기 위하여 더 많은 용량의 메모리를 가질 필요가 있다.
이를 위하여, 일 실시예에서, 다른 하부객체의 특정 연산 결과들 중 적어도 하나 및/또는 적어도 하나의 기본 정보를 포함하는, 통신 메모리 유닛에 대하여 액세스하는 적어도 하나의 계산 유닛에 의해 적어도 하나의 특정 연산이 수행된다.
이러한 통신 메모리는, 일반적으로, 다른 하부객체들의 처리를 위해 사용되는 특정 연산들의 결과 및/또는 기본 정보의 장기 저장을 위해 사용된다. 특정 연산들 중 일부만이 이러한 데이터를 산출하거나 사용하며, 따라서, 필요 속도는 제한된다. 본 발명에 의해 도입되는 일정성은, 이 데이터가 무엇인지의 판정을 매우 간단하게 할 수 있으므로, 캐쉬 메모리 메카니즘을 사용할 필요성을 회피하며, 이는 복잡성을 감소시키고, 플랫폼의 비용을 감소시킨다. 따라서, 일 실시예에서, 통신 메모리 유닛은 0.3*N의 액세스/하부객체/특정 연산보다 낮은 액세스 속도를 갖는다. 이러한 메모리는, 고속 고용량 메모리가 요구하는 것보다 비교적 느린 액세스 속도를 가지며, 비교적 저가이다. 이는 본 발명의 장점 중 하나이다.
처리 플랫폼이 메모리 용량이 감소되도록 된다면, 올바로 처리 연산이 적용될 수 있도록 하부객체들의 크기가 선택되어야 한다. 따라서, 특히, 플랫폼에 휴대 전화에 통합되는 경우에 사용되는 일 실시예에서, Q의 값은 1로 고정되며, N의 값은 2와 16 사이에 있게 된다. 예를 들어, 플랫폼이 휴대 전화로 찍은 사진들을 처리하기 위한 것이라면, 모든 연산들이 한번에 하나의 픽셀에 적용되게 된다.
이와 대조하여, 예를 들어, 플랫폼이 벡터 신호 프로세서를 포함하는 등의 특정한 경우, 많은 수량의 계산 유닛들을 가질 수 있다. 이 하드웨어 구성은, 계산 유닛들이 적절하게 사용된다면, 객체의 처리 연산의 가속을 가능하게 한다. 이를 위하여, 일 실시예에서, 적어도 2개의 동일한 계산 유닛들에 의해 동시에 적어도 하나의 특정 연산이 수행된다. 따라서, 본 발명은 처리 연산의 일정성에 의해 프로세서들의 최적의 사용을 가능하게 한다.
실시예들에 따라서, 특정 연산들은 가산, 감산, 승산, 상관 표의 적용, 최소치, 최대치, 선택으로 이루어지는 군에서 적어도 하나의 특정 계산 연산을 포함한다.
따라서, 일 실시예에서, 적어도 하나의 특정 계산 연산은 또한 오프셋, 및/또는 채도 및/또는 라운드 오프를 수행한다. 본 발명에 따르면, 특정 선택 계산 연산은 제3 데이터 항목의 값에 따라서 적어도 2개의 데이터 항목들에서 데이터를 선택하는 것을 가능하게 한다.
일 실시예에서, 표의 입력과 제한된 수의 인자들을 이용한 계산에 의해 상관 표의 적용이 수행된다. 일 실시예에서, 제한된 수의 인자들은 8로 고정된다.
또한, 다른 실시예들에서, 적어도 하나의 순환적 체인 CC1에 의해 연쇄된 계산 유닛에 의해 특정 연산들이 수행되고, 상기 순환적 체인 CC1는 적어도 하나의 큐를 더 포함하며, 특정 연산 시퀀스로부터의 적어도 하나의 특정 연산 IS4은 계산 유닛 UC1에서 수행되는 특정 인스트럭션 IS5의 결과를 계산 유닛 UC2 또는 상기 체인에 따라 상기 계산 유닛 UC1에 후속하는 큐로 전송한다.
일 실시예에서, IS4 특정 연산은 큐로부터 그 큐에 후속하는 계산 유닛 UC0로, 이전 서브 처리 연산 동안 수행되는 특정 연산 IS5의 결과를 전송한다. 바람직하게는 큐는 데이터가 큐에 입력된 것과 동일한 순서로 출력되게 한다. 바람직하게는, 계산 유닛 및 큐를 포함하는 체인은, 부팅 연산의 관리를 가능하게 하는 메카니즘을 포함하고, 즉, 큐는 규칙적으로 초기화되고, 예를 들어 각 라인의 시작에서, 큐가 수평 체인의 일부이고 대상이 화상이면, 특정 인스트럭션 IS4의 제1 실행시, 큐로부터 UC0으로 전송되는 데이터가 없고, 다음으로, 특정 연산 IS4는 큐로부터 큐에 후속하는 계산 유닛 UC0으로, 이전 서브 처리 연산 동안 수행되는 특정 연산 IS5의 결과를 전송한다.
N 및 Q 값들은 실시예들에 따라 변한다. 각 실시예는 상이한 이점들을 갖는다, 따라서, 일 실시예에서, N은 Q의 배수가 아니다. 본 실시예의 하나의 대안에서, Q는 일반적인 연산들의 시퀀스를 변환함으로써 얻어지는 시퀀스의 특정 연산량이다.
일 실시예에서 N은 Q의 배수이다. 이에 의해 처리가 규칙적으로 된다. 바랍직하게는 N=Q이다. 이것은 임시 결과들을 저장하기 위해 요구되는 메모리량을 감소시킨다.
일 실시예에서 Q=1이고 N=4이다. 이에 의해, 하나의 동일한 특정 연산의 여러 응용에 대해 동일한 파라미터값을 재사용할 수 있다.
일 실시예에서 Q>1이고 N=Q이다. 이에 의해, 벡터 신호 프로세서의 Q개의 계산 유닛들을 100%로 사용할 수 있다.
일 실시예에서 Q>1이고 N은 Q의 배수이다. 이에 의해, 벡터 신호 프로세서의 Q개의 계산 유닛을 100%로 사용할 수 있고, 하부객체의 처리 동안 수행되고 다른 하부객체 처리를 위해 사용되는 특정 연산들로부터의 결과량을 감소시킬 수 있다.
일 실시예에서, 각 프로세서는 특정 연산들의 시퀀스의 모든 연산들을 수행한다.
일 실시예에서, 모든 프로세서들은 동시에 동일한 특정 연산을 수행한다. 추가의 실시예에서, 모든 프로세서들은 동일한 특정 연산을 연속적으로 수행하여 순환 필터를 수행할 수 있게 한다. 기본 정보 검색시 너무 많은 시간을 낭비하지 않도록 하기 위해, 기본 정보 및 연산을 메모리 내에 저장함으로써 비교적 간단한 어드레싱의 이용이 필요하다. 이를 위해, 일 실시예에서, 특정 연산 결과들 중 적어도 일부분이 메모리 내에서 "베이스 어드레스 + 오프셋" 또는 "베이스 어드레스 +모듈로 오프셋(버퍼 메모리 크기)" 포맷의 어드레스에 저장되고, 오프셋은 하나의 동일한 특정 연산으로부터의 모든 결과들에 대해 일정하다. 바람직하게는, 버퍼 메모리는 처리 플랫폼의 메모리들 중 하나에 통합된다. 특히, 버퍼 메모리는 큐일 수 있다.
추가의 실시예에서, 베이스 어드레스는 처리 연산에서 하부객체가 변경될 때마다 수정된다.
일 실시예에서, 이러한 어드레싱은 적어도 하나의 차원에 따라 하부객체들 사이의 통신을 위한 데이터에 특별히 사용될 수 있다.
벡터 신호 프로세서의 특정 경우, 어드레스 계산은 모든 프로세서들에 대해 공통이며, 하부객체의 크기에 대해 기본 정보 및/또는 특정 연산 결과들의 메모리 전달 그룹들이 사용될 수 있다.
임의의 하드웨어 구성에서, 각 계산 유닛은 고유의 메모리를 가진다고 앞서 도시했다. 이 경우, 주어진 어드레스는 여러 메모리들에 관련될 수 있다. 즉, 여기에 정의된 메모리 어드레스는 사실상 하나의 동일한 특정 연산을 수행하는 모든 계산 유닛들에 의해 사용되는 모든 메모리 어드레스들을 나타낸다.
일 실시예에서, 특정 연산의 적어도 일 부분은 메모리 내에서 하나의 동일한 특정 연산으로부터의 모든 결과들에 대해 미리 결정된 어드레스에 저장된다.
상기 방법은 처리 연산을 수행하기 위해 필요한 계산 유닛들의 수가 비교적 작을 수 있게 하기 위한 것이다. 따라서, 일 실시예에서, 특정 연산들이 적어도 하나의 레지스터 유닛 및 적어도 하나의 하부객체 통신 메모리를 구비한 적어도 하나의 계산 유닛에 의해 수행되는 경우, 처리 플랫폼 상의 트랜지스터수는 계산 유닛당 10,000개 아래이고 이것은 통신 메모리 없이 관련 레지스터 유닛을 포함한 것이다.
발명의 실시예들 중 하나에서, 플랫폼에는 일반 포맷 데이터에 기초하여 계산된 특정 포맷 데이터가 바람직하게는 직접 제공되며, 이 일반 포맷 데이터는 일반 연산들의 적어도 하나의 시퀀스를 기술하는 제1 데이터를 포함하고, 플랫폼 내의 기본 정보 및 일반 연산들로부터의 특정 연산들에 대한 스크롤 모드(scrolling mode)를 설명하는 특정 포맷 데이터의 계산이 수행되고, 이러한 특정 연산들은 플랫폼에서의 처리 동안 객체에서 수행되는 특정 연산들의 시퀀스를 형성한다. 따라서, 객체의 처리는 일반 포맷 데이터를 변경하고 플랫폼에 최적화된 특정 포맷 데이터를 자동적으로 획득함으로써 수정될 수 있다. 이에 따라 플랫폼의 시장 배출에 걸리는 시간이 빨라진다. 이에 따라, 코드 사이즈, 계산 시간 및 메모리 품질이 최적화된다 이에 따라, 전기 소비 및 플랫폼의 비용이 낮아진다.
일반 연산들은 논리 블록들에 적용되는 연산들, 즉 사이즈나 포맷의 통지 없이 기본 정보로 이루어지고 객체의 전부 또는 일부를 구성할 수 있는 요약 엔티티이다.
본 설명에서, 일반 포맷 데이터는 플랫폼 자체와 무관하게, 데이터 처리 플랫폼에 의해 객체에서 수행되는 처리 연산을 설명하기 위해 이용되는 디지털 데이터이다. 특정 포맷 데이터는 특정 포맷 데이터를 이용하여 플랫폼에 적합화된 2진 코드를 생성하는 컴파일러를 이용하여 직접 또는 간접적으로 제공될 수 있다.
상이한 가능한 스크롤 모드들이 존재하고, 그들 중 일부는 이하에 더 자세히 설명할 것이다. 이들 스크롤 모드들을 이용하여, 처리 대상 객체에 적용되는 특정 연산들도 생성될 수 있다. 이에 의해 비교적 단기간 내에 알고리즘들의 시장 배출이 가능해진다.
일 실시예에서, 일반 연산들은 논리 블록들 및/또는 파라미터들의 가산, 논리 블록들 및/또는 파라미터들의 감산, 논리 블록들 사이의 차에 대한 절대값의 계산, 논리 블록들 및/또는 파라미터들의 승산, 적어도 2개의 논리 블록들 및/또는 파라미터들의 최대, 적어도 2개의 논리 블록들 및/또는 파라미터들의 최소, 상호상관 표의 응용, 논리 블록들 및/또는 파라미터들의 조건 선택 - 이러한 선택은 a>b 이면 c가 선택되고 아니면 d가 선택되며, 여기서, a, b, c 및 d는 논리 블록들 및/또는 파라미터들임 -, 논리 블록을 위한 히스토그램, 논리 블록을 위한 스케일의 변화, 및 적어도 하나의 좌표를 포함하는 블록을 생성하는 연산을 포함하는 그룹에 포함되는 적어도 하나의 기본 일반 연산을 포함한다.
다른 실시예에서, 기본 정보는 고정점의 수치적 값들에 의해 표현되고, 일반 연산들은 오프셋 연산들, 채도 연산 및/또는 이 채도 연산과 결합된 적어도 하나의 기본 일반 연산을 포함한다.
정의된 모든 하드웨어 특성들은, 분명하게는, 어떠한 유형의 플랫폼이 사용되든지, 그리고 어떠한 유형의 객체가 처리되든지 유효하다.
그러므로, 일 실시예에서, 처리 대상 객체는 화상이고, 기본 정보는 이 화상의 픽셀들이다. 이 경우, 프로세싱 플랫폼은 예를 들어, 화상 캡처링 및/또는 렌더링 장치의 일부이고, 연산들은 연산들의 시퀀스 및/또는 프로세싱 플랫폼 및/또는 처리 대상 객체에 따른 값들을 갖는 파라미터들을 적용하며, 이 파라미터 값들은 화상 캡처링 및/또는 렌더링 장치를 위한 광학기기 및/또는 센서 및/또는 이미저 및/또는 전자장치 및/또는 소프트웨어의 특성에 링크된다. 특성은 예를 들어, 객체에 따른 모든 객체들 또는 변수들을 위한 고유한 고정 특성, 예를 들어, 센서의 이득에 따라 변하는 잡음 특성일 수 있다. 특성은 또한 기본 정보의 절대적 위치에 따른 모든 기본 또는 가변 정보, 예를 들어 광 선명 특성에 대해 동일할 수 있다.
다른 실시예들에서, 처리 대상 객체는 디지털 오디오 신호이고 기본 정보는 이 신호에 대한 오디오 샘플들에 존재하거나, 또는 심지어 처리 대상 객체는 수치적 메시(numerical mesh)이고 기본 정보는 메싱(meshing)의 각 지점을 특성화하는 공간적 및 시간적 정보이다.
본 발명은 또한, 동일한 유형의 기본 정보(54, 56, 58, 60, 154, 156, 158, 및 160)로 이루어진 객체(55)를 처리하도록 예정된, 하나 이상의 프로세서 및 메모리를 갖는 플랫폼에 관한 것이며, 처리 대상 객체를 각각 N개의 기본 정보(54, 56, 58, 154, 156, 158)로 이루어진 적어도 2개의 하부객체(50, 51, 52 및 53)로 분해하기 위한 수단 - 모든 하부객체(50, 51, 52 및 53)는 동일한 양 N의 기본 정보를 가짐 -, 및 각 하부객체의 기본 정보(50, 51, 52, 53)에 대해 적어도 하나의 시퀀스의 특정 연산들을 수행하기 위한 수단을 포함하며, 이들 프로세싱 수단은 또한 각 하부객체에 대해, 적어도 N회 각 특정 연산을 수행하여, 한편, 각 하부객체를 위한 각 기본 정보가 적어도 한번 적용되고, 다른 한편, 각 특정 연산에 대한 N 결과들이 생성되게 하기 위한 수단을 더 포함하며, 프로세싱 수단은 특정 연산들의 시퀀스 중 적어도 하나의 특정 연산(62)이 그의 N회의 적용(62a, 62b, 62c, 62d, 62e, 62f)에 걸쳐서 적어도 한번, 다른 하부객체(60, 160)에 속하는 기본 정보를, 직접적으로 또는 간접적으로 적용되도록 한다.
일 실시예에서, 처리 대상 객체는 차원 DO를 포함하며, 하부객체는 객체의 차원 DO로부터 선택된 차원 DSO를 포함하며, 객체를 분해하기 위한 수단은 하부객체의 차원의 적어도 하나에 따라 하부객체가 오버레이를 갖지 않도록 된다.
그러므로, 바람직하게는, 특정 연산들은 하부객체가 오버레이를 갖지 않는 차원에 따라 적어도 하나의 순환적 체인에 따라 연쇄된 계산 유닛들에 의해 수행된다.
또한 바람직하게는, 하부객체는 임의의 차원에 따라 오버레이를 갖지 않는다.
일 실시예에서, 플랫폼은 하부객체의 처리 동안 수행되고 다른 하부객체의 처리에 이용된 특정 연산들로부터의 결과들 및/또는 기본 정보를 저장하기 위한 적어도 하나의 객체간 통신 메모리를 포함한다.
일 실시예에서, 플랫폼은 객체의 처리 동안 동일한 데이터를 적용하는 특정 연산을 포함하지 않는 특정 연산들의 시퀀스를 수행하기 위한 수단을 포함한다.
일 실시예에서, 객체는 차원 DO를 포함하며, 기본 정보는 객체의 DE 차원 중 하나에 따라, 그 후 다른 차원에 따라 플랫폼에 수신되고, 하부객체는 객체의 차원 DO로부터 선택되고 DE 차원을 포함하는 차원 DSO를 포함하며, 플랫폼은 프로세싱 연산에 포함된, 루프를 스크롤하는 내부 하부객체가 DE 차원에 따라 수행되도록 한다.
일 실시예에서, 객체는 차원 DO를 포함하며, 기본 정보는 객체의 DE 차원 중 하나에 따라, 그 후 다른 차원에 따라 플랫폼에 수신되고, 하부객체는 객체의 차원 DO 또는 객체의 차원 DO로부터 선택된 차원 DO-1을 포함하며, DE 차원은 포함되지 않으며, 플랫폼은 프로세싱 연산에 포함된, 루프를 스크롤하는 내부 하부객체가 DE 차원에 따라 수행되도록 한다.
일 실시예에서, 처리 대상 객체를 분해하기 위한 수단은, 각 차원의 하부객체의 사이즈가 객체의 사이즈 및/또는 플랫폼에 의해 수신된 기본 정보의 속도, 및/또는 플랫폼의 계산 속도 및/또는 플랫폼의 메모리들 중 적어도 하나의 사이즈 및 속도에 따라 결정되도록 한다.
일 실시예에서, 특정 연산들의 적어도 일부분이 적어도 하나의 파라미터 값을 적용하는 경우에, 플랫폼은 동일한 특정 연산을 동시에 계산하는 Q개의 계산 유닛을 포함하며, 플랫폼은 적어도 하나의 특정 선택 연산을 포함하는 특정 연산들의 적어도 하나의 시퀀스를 수행하기 위한 수단을 더 포함하며, 이 특정 선택 연산은 적어도 하나의 기본 정보 및/또는 적어도 하나의 특정 연산 결과 및/또는 적어도 하나의 파라미터 값에 따라, 각 프로세서에 대해 차별화된 방식으로 Q개의 계산 유닛에서 동시에 C 파라미터 값들로부터의 파라미터 값의 선택을 수행한다.
일 실시예에서, 플랫폼은 동일한 특정 연산을 동시에 계산하는 Q개의 계산 유닛을 포함하며, 적어도 하나의 특정 선택 연산을 포함하는 특정 연산들의 적어도 하나의 시퀀스를 수행하기 위한 수단을 더 포함하며, 이 특정 선택 연산은 적어도 하나의 기본 정보 및/또는 적어도 하나의 특정 연산 결과 및/또는 적어도 하나의 파라미터 값에 따라, 각 프로세서에 대해 차별화된 방식으로 Q개의 계산 유닛에서 동시에 데이터 C로부터의 데이터 항목의 선택을 수행한다.
일 실시예에서, 플랫폼은 적어도 하나의 특정 위치 연산을 포함하는 특정 연산들의 시퀀스를 수행하기 위한 수단을 포함하며, 객체는 차원 DO를 포함하며, 이 특정 위치 연산은 차원 DO의 하나에 따라 위치 정보를 생성한다.
일 실시예에서, 플랫폼은 적어도 하나의 기본 정보 및/또는 적어도 하나의 파라미터 값에 따른 상대적인 위치를 생성하는 적어도 하나의 특정한 연산을 포함하는 특정한 연산들의 시퀀스를 수행하기 위한 수단을 포함한다.
일 실시예에서, 플랫폼은 특정한 연산들의 적어도 하나의 부분을 수행하기 위한 Q개의 계산 유닛들을 포함하고, Q는 N 또는 N의 약수와 같다.
일 실시예에서, Q개의 계산 유닛들의 수는 N과 상이하고, 하부객체 처리는 N/Q 이터레이션(iteration)들의 하나의 단일 내부 루프를 포함한다.
일 실시예에서, 플랫폼은 Q개의 계산 유닛들이 동일하다.
일 실시예에서, 플랫폼은 하나의 동일한 계산 유닛에 의해 하나의 단일 특정 연산으로부터 N개의 결과가 계산되도록 하기 위한 수단을 포함한다.
일 실시예에서, 플랫폼은 적어도 하나의 특정 연산이 적어도 하나의 파라미터를 적용할 때, 이러한 특정한 연산을 수행하기 위한 수단을 포함하고, 파라미터들의 값들의 일부를 포함하는 메모리 유닛에 액세스하는 계산 유닛을 더 포함하고, 이러한 계산 유닛에 의해 수행되는 특정 연산들에 따라 이러한 부분이 결정된다.
일 실시예에서, 플랫폼은 적어도 하나의 특정 연산이 적어도 하나의 파라미터를 적용할 때, 이러한 파라미터는 처리 대상 객체의 하부객체에 의존하도록 하기 위한 수단을 포함한다.
일 실시예에서, 플랫폼은 연쇄 계산 유닛들을 포함한다.
일 실시예에서, 플랫폼은 하나의 체인 및 하나의 차원에 따라 연쇄된 계산 유닛을 포함한다.
일 실시예에서, 플랫폼은 적어도 하나의 순환적 체인에 따라 연쇄된 계산 유닛들을 포함한다.
게다가, 일 실시예에서, 이러한 체인은 적어도 하나의 큐를 포함할 수 있다.
하부객체가 차원들 DSO를 포함하는 일 실시예에서, 플랫폼은 각 하부객체의 차원들에 대해 순환적 체인에 따라 연쇄된 계산 유닛들을 포함한다. 각 하부객체의 D1 특정 차원들에 대한 순환적 체인(들)은 하부객체의 D1 특정 차원에 대한 순환적 체인(들) 사이에서 공유되거나 그렇지 않은 적어도 하나의 큐를 더 포함한다.
일 실시예에서, 플랫폼은 순환적 체인 CC1에 의하여 하부객체의 결정된 차원들 DD 중 적어도 하나에 따라 연쇄된 계산 유닛들을 포함한다. 순환적 체인은 적어도 하나의 큐를 더 포함하고; 플랫폼은 특정한 인스트럭션의 각 적용에 대하여, 제1 계산 유닛 UC1에서 그 적용의 결과가 계산 유닛 UC2 또는 상기 체인에 따라 상기 제1 계산 유닛 UC1을 따르는 큐로 송신되는 것이다.
일 실시예에서, 플랫폼은 또 다른 하부객체의 하부처리 연산 동안 사용되는 특정한 연산들로부터의 결과들을, 상기 하부객체에 관한 상기 다른 하부객체의 상대적인 위치에 따라 저장하기 위한 적어도 하나의 메모리를 포함한다.
또 다른 실시예에서, 플랫폼은 적어도 하나의 순환적 체인에 따라 연쇄된 계산 유닛들 및 시퀀스와 계산 유닛들의 체인에 따라 계산 유닛들에 특정 연산들을 할당하기 위한 수단을 포함한다.
일 실시예에서, 플랫폼은 특정 연산들의 순서 및/또는 유형이 수정될 수 있도록 하기 위한 수단을 포함한다.
일 실시예에서, 플랫폼은 특정 연산들의 적어도 하나의 미리 결정된 시퀀스에 따라 특정 연산들을 수행하기 위한 케이블된(cabled) 계산 유닛들을 포함한다.
일 실시예에서, 플랫폼은 기본 정보 및/또는 특정 연산 결과들을 저장하기 위한 제한된 용량의 메모리 유닛을 갖춘 적어도 하나의 계산 유닛을 포함하고, 이러한 메모리는 적어도 16개의 기본 정보 및/또는 특정 연산 결과들을 포함한다.
일 실시예에서, 플랫폼은 통신 메모리 유닛에 액세스하는 적어도 하나의 계산 유닛을 포함하고, 통신 메모리 유닛은 다른 하부객체들로부터의 특정 연산 결과들 및/또는 기본 정보를 포함한다.
일 실시예에서, 플랫폼은 통신 메모리 유닛이 0.3×N 액세스/하부객체/특정 연산보다 적은 액세스 속도를 갖도록 하는 것이다.
일 실시예에서, 플랫폼은 특히 이동 전화기(mobile phone)에 통합되고, Q의 값이 1로 고정되고 N의 값이 2와 16 사이에 포함되도록 하기 위한 수단을 포함한다.
일 실시예에서, 플랫폼은 적어도 하나의 특정 연산을 동시에 수행하는 똑같은 계산 유닛을 적어도 두 개 포함한다.
일 실시예에서, 플랫폼은 특정 연산의 결과들의 적어도 하나의 부분이 메모리의 "기본 어드레스(base address)+오프셋" 또는 "기본 어드레스+모듈로 오프셋(modulo offset)(버퍼 메모리의 크기)" 포맷의 어드레스로 저장되도록 하기 위한 수단을 포함하고, 오프셋은 하나의 동일한 특정 연산으로부터의 모든 결과에 대하여 일정하다.
일 실시예에서, 플랫폼은 처리 연산에서 하부객체가 변경될 때마다 기본 어드레스를 수정하기 위한 수단을 포함한다.
일 실시예에서, 플랫폼은 하나의 동일한 연산으로부터의 모든 결과에 대하여 미리 결정된 어드레스에서 특정 연산의 결과들의 적어도 하나의 부분이 메모리에 저장되도록 하기 위한 수단을 포함한다.
일 실시예에서, 플랫폼은 관련된 메모리 유닛을 포함하는, 트랜지스터의 수가 계산 유닛당 10,000개 미만인, 메모리를 갖춘 적어도 하나의 계산 유닛을 포함한다.
일 실시예에서, 플랫폼은 입력에서, 바람직하게는 직접, 일반적인 포맷의 데이터로부터 계산된 특정 포맷의 데이터를 수신하기 위한 수단을 포함하고, 이러한 일반적인 포맷의 데이터는 일반적인 연산들의 적어도 하나의 시퀀스를 기술하는 제1 데이터를 포함하고, 특정 포맷의 데이터의 계산은 플랫폼에서 기본 정보에 대한 스크롤 모드 및 일반적인 연산들로부터의 특정한 연산들을 설명하도록 수행되고, 이러한 특정 연산들은 특정 연산들의 시퀀스를 형성하고, 플랫폼은 객체에 대한 특정 연산들의 이러한 시퀀스를 수행하기 위한 수단을 포함한다.
일 실시예에서, 플랫폼은 화상을 구성하는 객체를 처리하는 수단을 포함하고, 그 기본 정보는 이 화상의 픽셀들이다.
일 실시예에서, 플랫폼은 화상 캡처링 및/또는 렌더링 디바이스의 부분이고, 연산들은 연산들의 시퀀스 및/또는 이 플랫폼 및/또는 처리 대상 객체에 의존하는 값들을 갖는 파라미터들을 적용하고, 이러한 파라미터 값들은 화상 캡처링 및/또는 렌더링 디바이스를 위한 광학기기 및/또는 센서 및/또는 촬영기 및/또는 전자기기들 및/또는 소프트웨어의 특징들과 관련된다.
일 실시예에서, 플랫폼은 디지털 오디오 신호로 구성된 객체를 처리하는 수단을 포함하고, 기본 정보는 이 신호에 대한 오디오 샘플들이다.
일 실시예에서, 플랫폼은 숫자로 나타낸 메시로 구성된 객체를 처리하는 수단을 포함하고, 기본 정보는 메싱의 각각의 지점을 특징짓는 부분적이면서 일시적인 정보이다.
본 발명은 상술된 방법에 따른 처리 방법에 의해 처리된 객체에 관한 것이기도 하다.
본 발명의 다른 특징들 및 장점들은 그의 실시예들의 일부에 대한 제한적이지 않은 설명으로부터 명백하게 될 것이고, 이러한 설명은 도면들에 의해 지원된다:
- 이미 설명된 도 1a, 1b, 1c, 1d, 1e 및 1f는 본 발명에 따른, 하부-객체들로의 화상의 분해에 대한 예들을 도시하는 도면.
- 도 2는 본 발명에 따른 방법을 이용하는 디바이스를 도시하는 도면.
- 도 3은 여러 논리 블록들에 적용된 일반적인 연산들의 시퀀스의 예를 하나의 파라미터로 도시하는 도면.
- 도 4는 본 발명에 따른 방법에서, 플랫폼에 제공된 특정 포맷의 데이터의 구조를 도시하는 도면.
- 도 5는 객체로의 연산 특징의 적용을 도시하는 도면.
- 도 6, 도 7 및 도 8은 본 발명에 따른 방법에 따라 객체를 처리하는 것이 가능한 플랫폼들의 상이한 아키텍처들을 도시하는 도면.
- 도 9a, 9b 및 9c는 본 발명에 따른 플랫폼에서의 프로세서 체인의 예들을 도시하는 도면.
도 2에 나타낸 디바이스는 화상(22)을 처리하는데 이용되고, 이 화상은 적어도 하나의 숫자 값으로 나타낸 픽셀들의 세트이다.
이러한 디바이스에서, 디지털 데이터 처리 수단(10)은 일반적인 포맷의 데이터(12)가 제공된다. 이러한 처리 수단은 예를 들어, 컴파일러일 수 있다.
본 발명에 따른 방법에 의해 제공된 일반적인 포맷의 데이터는, 일반적인 연산들의 시퀀스를 설명하고, 이러한 일반적인 연산들에 포함된 논리 블록들의 상대적인 위치들을 제공하는 제1 및 제2 데이터(14)를 포함한다. 이러한 제1 및 제2 데이터는 도 3을 이용하여 묘사될 것이다.
처리 수단(10)은 또한, 화상 캡처링 또는 렌더링 디바이스와 같은, 처리 플랫폼(20)의 특징들에 따라 결정된 플랫폼의 기본 정보에 대한 스크롤링 모드(24)를 입력에 수신한다.
이러한 일반적인 포맷의 데이터(12) 및 이들 파라미터들을 이용하여, 처리 수단(10)은 특정 포맷의 데이터(18)를 갖는 처리 플랫폼(20)을 제공한다.
특정 포맷의 데이터는 플랫폼의 메모리 내의 픽셀들의 조직, 픽셀들이 플랫폼에 의해 처리되는 순서 또는 심지어 플랫폼에 의해 수행된 특정 연산들의 그룹화를 고려한 데이터와 같은, 데이터의 상이한 타입들을 포함한다.
그 후, 플랫폼(20)은, 그것이 인바운드(inbound)하여 수신하는 화상(22)을 처리하기 위해 상기 특정 포맷의 데이터를 이용한다.
아래 표 4 및 도 3은 논리 블록(B1)에 적용된 일반적인 연산들의 시퀀스의 형태로, 일반적인 포맷의 데이터의 예를 도시한다. 이러한 시퀀스는 3개의 일반적인 연산들을 포함한다. 표의 컬럼은,
- 시퀀스에서의 연산의 순위,
- 일반적인 연산의 이름
- 일반적인 연산의 결과가 제공되는, 즉, 이 결과가 있는 위치가 각각의 연산의 끝에서 재구성되는 객체일 수 있는, 논리 블록(출력)
- 논리 블록 또는 파라미터일 수 있는, 일반적인 연산의 제1 입력(입력 1),
- 적절하다면, 입력 1에서의 논리 블록에 관하여 이용되는 논리 블록의 상대적인 위치,
- 논리 블록 또는 파라미터일 수도 있는 일반적인 연산의 제2 입력(입력 2). 및
- 적절하다면, 입력 2에서의 논리 블록에 관하여 이용되는 논리 블록의 상대적인 위치
의 순서대로 도시한다.
"상대적인 위치" 컬럼에 위치된 정보는 본 발명에 따른 방법을 이용하는 처리 수단에 제공된 제2 데이터에 존재하는 정보이다.
일 실시예에서, 제2 데이터는, 서로 관련된 블록들 및/또는 파라미터들의 현저한 공간적 및/또는 일시적인, 적어도 하나의 객체의 차원들에 따른 상대적인 위 치를 지칭하고, 및/또는 서로 관련된 논리 블록들 및/또는 파라미터들의 현저한 공간적 및/또는 일시적인, 적어도 하나의 객체의 차원들에 따른, 상대적인 스케일을 지칭한다.
이 표에서, 단순화를 목적으로 "좌" 및 "우"의 형태로 이 정보가 발견되지만, 사실상, 일반적인 포맷의 데이터에서, (0;1)과 같은 숫자 값 및/또는 f(x;y)와 같은 함수들에 의해 코딩될 수도 있다.
일 실시예에서, 일반 연산은 객체의 차원들 중 하나에 따른 절대 위치로 이루어지는 논리 블록을 생성하며, 인디렉션(indirection)이라 하는 또 다른 일반 연산은, 제3 블록으로부터 제2 블록에 의해 표시되는 변위 및/또는 스케일 변경에 의해 블록을 발생시킨다. 그 후, 블록들에 대한 일반 연산을 이용하여, 예를 들어, 0.5*(x-100) 와 같은 상대적 위치 및/또는 상대적 스케일을 부여하는 함수의 계산이 수행될 수 있으며, 그 후 일반 인디렉션 연산을 이용하여 상대 변위 및/또는 대응하는 상대적 스케일 변경을 수행한다.
표 4는 코딩의 일례일 뿐이며, 제1 데이터 및 제2 데이터는 표로 만들어진 포맷, 심볼 포맷, 그래프 포맷, 또는 임의의 다른 포맷의 다양한 방식에 의해 코딩될 수 있다. 또한, 간략화를 위해 데이터 종류, 오프셋, 및 채도에 관한 부가 정보는 본 예에서 생략되어 있다.
시퀀스 연산 출력 입력 1 상대적 위치 입력 1 블록 입력 2 상대적 위치 입력 2 블록
1 가산 B2 B1 B1
2 B3 Param 1 B2
3 승산 B4 B3 B1
본 연산의 시퀀스에 사용되는 제1 논리 블록은 논리 블록 B1(51)이다. 제1 일반 연산은 좌측으로 오프셋된 논리 블록 B1(51g)과 우측으로 오프셋된 논리 블록 B1(51d) 사이의 가산(52)이다. 이 가산의 결과는 블록 B2에 기록된다(53): B2 = B1left + B1right.
제2 연산(54)은 표와 관련하여 블록 B2의 변형(53)이다. 따라서, 이 연산은 입력으로 블록 B2(53)를 가지며, 변경 표를 나타내는 파라미터 Param1(55)을 갖는다. 이 연산의 결과는 블록 B3(56)에 기록된다: B3 = LUT (Param1, B2).
본 시퀀스의 제3 연산으로서 마지막 연산(57)은 논리 블록들의 승산이다. 이 연산은 논리 블록 B3(56) 및 논리 블록 B1(51)을 갖는다: 입력을 위해 B4=B3*B1.
따라서, 논리 블록 B4(58)는 일반 연산의 시퀀스의 말단에서 얻어지는 블록이다.
표 1의 예에서 일반 포맷 데이터는 플랫폼, 객체의 하부객체로의 분해, 객체의 기본 정보의 스크롤링 모드, 플랫폼에서 기본 정보가 처리되는 순서, 및 저장된 구성과는 독립적이다. 실제로, 표 1의 일반 포맷 데이터는, 그 리스트가 제한적인 것은 아니며, 예를 들어, 이하의 변환에 따라 다양한 방식으로 특정 포맷 데이터로 또는 플랫폼에 대한 코드로 변환될 수 있다.
변환의 제1 예는 메모리 및 계산 시간의 측면에서 최적인 것은 아니지만, 하부객체들로 분해를 포함하지 않는 단순한 변환을 나타낸다.
(논리 블록 B1에 대응하는) 입력 객체의 픽셀들(BP1) 각각에 대하여, 2개의 좌측 및 우측 열을 제외하고, 픽셀들이 좌측에서 우측으로 또한 상측에서 하측으로 스크롤링된다.
현재 픽셀의 좌측의 픽셀과 우측의 픽셀을 가산하여, 그 결과를 (논리 블록 B2에 대응하는) 물리 블록 BP2에 저장한다.
좌측에서 우측으로 상측에서 하측으로 스크롤링되는 BP2의 각각의 픽셀에 대하여:
현재의 픽셀에 표를 적용하여, 그 결과를 (논리 블록 B3에 대응하는) 물리 블록 BP3에 저장한다.
좌측에서 우측으로 상측에서 하측으로 스크롤링되는 BP3의 각각의 픽셀에 대하여:
현재의 픽셀을 BP1의 대응 픽셀과 승산하고, 그 결과를 물리 출력 블록(BP4)(논리 블록 B4에 대응)에 저장한다.
변환의 제2 예는 일반 포맷 데이터를 변화시키지 않고 사용되는 크기와 메모리가 감소될 수 있음을 나타낸다. 실제로, 제1 예에서, 화상과 동일한 크기의 4개의 물리 블록들이 사용된다. BP2, BP3, 및 BP4에 대하여 동일한 메모리를 사용하여 2개의 물리 블록들만이 사용될 수 있다. 이하의 변환이 구해진다:
2개의 좌측 및 우측 열들을 제외한 (논리 블록 B1에 대응하는) 입력 객체의 픽셀들(BP1) 각각에 대하여, 좌측에서 우측으로 상측에서 하측으로 픽셀들이 스크롤링된다:
현재의 픽셀의 좌측의 픽셀과 우측의 픽셀을 가산하고, 그 결과를 (논리 블록 B2에 대응하는) 물리 블록 BP2에 저장한다.
좌측에서 우측으로 상측에서 하측으로 스크롤링되는 BP2의 각각의 픽셀에 대하여:
현재의 픽셀에 표를 적용하고, 그 결과를 (논리 블록 B3에 대응하는) 물리 블록 BP2에 저장한다.
좌측에서 우측으로 상측에서 하측으로 스크롤링되는 BP2의 각각의 픽셀에 대하여:
현재의 픽셀과 대응 BP1 픽셀을 승산하고, 그 결과를 (논리 블록 B4에 대응하는)물리 출력 블록 BP2 에 저장한다.
변환의 제3 예는 일반 포맷 데이터를 변화시키지 않고 계산 시간이 감소될 수 있음을 나타낸다. 실제로, 제2 예에서, 화상과 동일한 크기의 2개의 물리 블록이 사용되지만, 물리 블록 BP2는 전체로 3번 기입되며, 논리 블록 BP1은 전체로 2번 판독되며, 물리 블록 BP2는 전체로 2번 판독된다. 이는, 상이한 스크롤링 모드와 상이한 블록들로 하나의 판독과 하나의 기입으로 제한될 수 있다. 이는 필요한 인스트럭션의 수를 감소시키지만, 메모리 액세스 요구사항 또한 감소시킨다. 이 경우, 하부객체는 하나의 픽셀로 이루어진다. 이하의 변환이 구해진다:
2개의 좌측 및 우측 열을 제외한 (논리 블록 B1에 대응하는) 입력 객체의 픽셀들 BP1 각각에 대하여, 좌측에서 우측으로 상측에서 하측으로 픽셀들이 스크롤링된다:
현재 픽셀의 좌측의 픽셀과 우측의 픽셀을 가산하고, 그 결과에 표를 적용하고, 표의 출력과 현재의 픽셀을 승산하고, 그 결과를 (논리 블록 B4에 대응하는) 현재의 물리 출력 블록 BP2에 저장한다.
제4 예에서, 더 구체적으로 캐쉬를 갖는 스칼라 프로세서에 적용되며, 그 결과는 입력과 같은 메모리 영역에 기입된다. 이는 메모리 크기를 더 감소시키고, 메모리 액세스를 지역적으로 가능하게 하여, 캐쉬 메모리 또는 페이지 메모리의 경우에 매우 유용하다. 이 경우, 하부객체는 하나의 픽셀로 이루어진다. 따라서, 이하의 변환이 구해진다:
2개의 좌측 및 우측 열을 제외한 (논리 블록 B1에 대응하는) 입력 객체의 픽셀들 BP1 각각에 대하여, 좌측에서 우측으로 상측에서 하측으로 픽셀들이 스크롤링된다:
이하의 특정 연산 시퀀스를 수행한다:
현재 픽셀의 좌측의 픽셀과 우측의 픽셀을 가산하고, 그 결과에 표를 적용하고, 표의 출력을 현재 픽셀과 승산하고, 그 결과를 현재 픽셀의 좌측의 픽셀을 대신하여 현재의 물리 출력 블록(BP1)에 저장한다 (좌측 픽셀은 다음 반복에서 좌측 픽셀이 되게 되는 현재의 픽셀에 대비하여 더 이상 사용되지 않는다; BP1은 부분적으로는 논리 블록 B4에 대응하며, 부분적으로는 논리 블록 B1에 대응한다).
변환의 제5 예는 구체적으로 작은 고속 액세스 메모리와 큰 저속 메모리를 갖는 신호 처리 프로세서에 적용되며, 하부객체 각각은, 예를 들어, 32x32의 직사각형이거나, 고속 액세스 메모리의 사용을 최대화하는 임의의 다른 값이며, 직사각형은 인접한다. 따라서, 이하의 변환이 구해진다:
각각의 하부객체에 대하여, 좌측에서 우측으로 상측에서 하측으로 하부객체들이 스크롤링된다:
좌측으로 하나의 열만큼 우측으로 하나의 열만큼 연장된 다음의 하부객체에 대응하는(32x34를 이룬다), 다음의 물리 입력 블록의 DMA(Direct Memory Access) 메카니즘을 통해 저속 메모리에서 고속 액세스 메모리로 전달을 론칭한다.
고속 액세스 메모리로부터 저속 메모리로 이전 물리 출력 블록의 DMA(Direct Memory Access) 메카니즘을 통해 전달을 론칭한다.
좌측 및 우측으로 추가의 열만큼 연장된 현재의 하부객체에 대응하는 물리 블록이 취해지며, 32x34를 이루어, 이전 반복의 DMA의 종단에서 구해진다.
이하의 연산 시퀀스를 수행한다: 좌측에서 우측으로 상측에서 하측으로의 스크롤링되는 좌우 2개의 열을 제외한, (논리 블록 B1에 대응하는) 물리 입력 블록의 각각의 픽셀에 대하여:
현재의 픽셀의 좌측 픽셀과 우측 픽셀을 가산하고, 그 결과에 표를 적용하고, 표 출력과 블록의 현재 픽셀을 승산하고, 그 결과를 (논리 블록 B4에 대응하는) 현재 물리 출력 블록에 저장한다.
변환의 제6 예는 구체적으로 벡터의 상이한 픽셀들에 대하여 하나의 동일한 계산을 적용할 수 있는 벡터 신호 프로세서에 적용되는 것으로서, 하부객체 각각은 예를 들어, 64개의 수평 픽셀들 또는 플랫폼이 처리 및 저장가능한 벡터의 크기와 동일한 임의의 다른 값의 직사각형이다. 이 변환은 벡터들이 한번에 하나씩 처리되므로 어떠한 메모리도 필요치 않는다. 따라서, 이하의 변환이 구해진다:
좌측 2개 열을 제외한 (논리 블록 B1에 대응하는) 입력 객체 BP1의 각각의 하부객체 V1에 대하여, 좌측에서 우측으로 상측에서 하측으로 하부객체들이 스크롤링되고, 이하의 특정 연산 시퀀스를 행한다:
각각의 라인의 시작에서, 우측의 라인의 2개 좌측 픽셀들을 포함하는 벡터 V0를 생성한다.
V0 및 V1으로부터, V0의 2개의 우측 픽셀들 및 V0의 2개의 우측 픽셀들을 제외하고 V1의 좌측 픽셀들에 대응하는 벡터 V2를 추출한다; V과 V2를 가산하여 V2를 구하고, V2의 각각의 픽셀에 표를 적용하여 V2를 구하고, V0 및 V1으로부터, V0의 우측 픽셀 및 V0의 우측 픽셀을 제외한 V1의 좌측 픽셀에 대응하는 벡터 V3을 추출한다; 다음의 반복을 위해, V1을 V0에 복사하고, V2와 V3를 승산하여 V2를 구하고, 그 결과 인V2를 현재의 물리 출력 블록에 저장한다.
제3, 제4, 제5 및 제6 예들은 일반 연산들의 시퀀스를 특정 연산들 중 하나의 시퀀스로 변환하는 예들이다. 특히:
- 코드의 크기는 하나의 루프만을 사용하여 감소될 수 있다, 또한/또는
- 메모리의 크기는, 본 예에서 0으로 감소될 수 있으나, 수직 필터가 존재하는 더 일반적인 경우, 일부 메모리 라인들은 수직 필터들의 입력 데이터에 대한 계산의 반복 필요성을 방지할 것이 요구된다, 또한/또는
- 특히, 루프를 그룹화함으로써 필요한 인스트럭션의 수는 감소된다, 또한/또는
- 임의의 크기의 벡터에 적용한다, 또한/또는
- 임의의 메모리 아키텍처에 적용한다.
간략화를 위해, 본 예들은 입력 화상보다 더 작은 화상을 생성한다. 필요하다면, 각 라인의 시작과 끝에서 코드를 추가하여 에지 픽셀을 중복시킴으로써 입력 화상과 동일한 크기의 출력 화상이 구해질 수 있다.
도 4는 본 발명을 따른 방법에 따라, 처리 수단(10)의 출력에서의 특정 포맷 데이터를 나타내고, 이 데이터는 처리 플랫폼(20)에 제공된다.
특정 포맷 데이터는 처리 수단에 제공되는 일반 포맷 데이터(32)를 이용하여, 그리고 이 처리 수단에 의해 결정되는, 플랫폼의 기본 정보를 스크롤링하는 모드(34)를 이용하여, 처리 수단에 의해 계산된다. 일반 포맷 데이터는 적어도 하나의 일반 연산 또는 처리 수단에 의해 수행되어야 하는 연산들의 시퀀스를 기술하는 데이터(38)를 포함하는 제1 데이터를 포함한다. 일반 포맷 데이터는 또한 적어도 2개의 논리 블록들을 포함하는 일반 연산들에 대하여, 논리 블록들의 서로에 대한 상대적 스케일 및 위치를 지칭하는 제2 데이터(40)를 포함한다. 이러한 일반 포맷 데이터와 스크롤링 모드(34)를 이용하여, 처리 수단은 특정 연산들에 관한 데이터(42), 및 루프들에 관한 데이터(44)를 제공한다. 이 데이터(42 및 44)는 특정 포맷 데이터(30)의 일부이다.
도 5는 연산 또는 객체에 특정한 연산의 적용을 도시한다. 이 도면에서, 객체(55)는 4개의 하부객체들(250, 251, 252 및 253)로 분할된다. 각각의 하부객체는 6개의 기본 정보로 구성된다. 연산(262)은 객체(255)에 적용될 연산들의 시퀀스 중 하나이다. 이 연산은 각각의 하부객체에 6번씩 적용되어(262a, 262b, 262c, 262d, 262e 및 262f) 6개의 결과들이 생성된다(264). 하부객체에 대한 6회의 적용 중에, 연산(262)은 다른 하부객체에 대하여 기본 정보를 적용한다. 예를 들어, 하부객체(250)에 대한 적용이 다음과 같이 일어난다: 적용(262a)은 기본 정보(254 및 256)를 적용하고, 적용(262b)은 기본 정보(256 및 258)를 적용하고, 적용(262c)은 기본 정보(258 및 260)를 적용하고, 기본 정보(260)는 하부객체(252)에 속한다. 또한, 적용(262d)은 기본 정보(154 및 156)를 적용하고, 적용(262e)은 기본 정보(156 및 158)을 적용하고, 적용(262f)은 기본 정보(158 및 160)를 적용하고, 기본 정보(160)는 하부객체(252)에 속한다.
본 발명을 따른 방법에 의해 결정될 수 있는 스크롤링 모드의 수개의 예들을 이하에서 설명한다. 이 스크롤링 모드 각각은 플랫폼에서 사용되기 위한 것이며, 그 아키텍쳐가 도 5 내지 도 7 중 하나에 도시되어 있다.
도 6에 도시된 제1 예에서, 처리 플랫폼은 하나의 차원에 연결(chain)된 5개의 프로세서들을 포함하고, 즉, 프로세서 ProcA로부터 출력되는 계산의 결과가 프로세서 ProcB의 입력에서 사용되며, 이하 동일하다. 프로세서 ProcE로부터 출력되는 기본 정보는 프로세서 ProcA의 입력에 인가된다.
각각의 프로세서에는 제한된 용량의 메모리 MemA 내지 MemE 가 구비되어 있다. 이 메모리 유닛은 프로세서에 의해 수행되는 특정 연산을 위해 사용되는 파라미터 값들, 또는 프로세서에 의해 바로 재사용되어야 하는 연산의 결과들을 저장하기 위한 것이다.
이 제1 예에서, 처리 연산은 8개의 연산(OP1 내지 OP8)의 시퀀스를 객체를 포함하는 기본 정보에 적용하는 것을 포함한다.
처리를 위해, 객체는 각각 N개의 기본 정보의 하부객체들로 분해되어야 한다. Q의 배수이어야 하는 N(Q = 5, 계산 유닛의 수량)은 본 발명을 따른 방법에 의해, 특히, 플랫폼의 메모리 용량에 따라서 플랫폼으로부터 업스트림으로 결정된다. 본 예에서, N = 5이다.
또한, 사용된 특정 연산의 일정한 시퀀싱을 수행하기 위해, 각각의 하부객체에 대하여 수행되어야 하는 특정 연산의 수가 활용가능한 프로세서의 수의 배수가 되도록 결과 OP09 및 OP10이 없는 특정 연산이 플랫폼으로부터 업스트림에 위치한 처리 수단에 의해 생성된다.
특정 종류의 연산에 따르면, 각각의 연산에는 프로세서에 의해 수행되도록 지정된다. 여기서,
- 프로세서 A는 OP1 및 OP6를 수행한다,
- 프로세서 B는 OP2 및 OP7를 수행한다,
- 프로세서 C는 OP3 및 OP8를 수행한다,
- 프로세서 D는 OP4 및 OP9를 수행한다,
- 프로세서 E는 OP5 및 OP10를 수행한다,
각각의 프로세서는 이에 지정되었던 특정 연산에 대응하는 인스트럭션의 집합(InsA 내지 InsE)을 실행한다. 제한된 용량으로 메모리에 저장되는 파라미터들은 또한 이러한 지정에 의존한다. 예를 들어, OP1이 2의 승산이라면, MemA 메모리는 도 2를 포함하게 된다.
일단 이러한 지정이 이루어지면, 이하 표 1에 기술된 시퀀싱 스케줄에 따라서 연산이 행해진다:
이 표에서, 공정 진행 시간은 T1, T2, ..., T14로 표기된다.
Figure 112008051947198-PCT00001
각 라인은 10개의 특정 연산 OP1 내지 OP10 중 하나를 나타낸다. 각각의 열은 기본 정보 IE1 내지 IE5 중 하나를 나타내며, 각각은 처리 대상 하부객체들을 구성한다. 이 IE1 내지 IE5 표기는 형식적인 것으로서; 반드시 실제의 공간 또는 시간에 대응할 필요는 없다. 실제로, 소정의 특정 연산은 기본 정보의 변위를 생성한다. 따라서, 예를 들어, 특정 연산 OP1이 좌측으로의 오프셋으로 구성되는 경우, 특정 연산 OP2에 의해 처리되는 정보 IE1은 정보 IE1에 적용되는 특정 연산 OP1의 결과가 아니라, 정보 IE2에 적용되는 이러한 특정 연산 OP1의 결과일 수 있다.
이 표의 각 박스는, 처리 연산 중에 이 특정 연산이 수행되는 시간뿐만 아니라 특정 연산을 수행하는 프로세서의 명칭을 포함한다. 명백하게도, 이 표는 처리 연산 중 일부만을 나타낸다. 여기서, 요구되는 특정 연산의 결과 모두는 이미 처리 연산에서 계산된 것으로 가정한다.
따라서, 시간 T1에서, ProcA 프로세서는 하부객체 1의 제1 정보 IE1에 대한 연산 OP1을 수행하는 것으로 도시되어 있다. 이 시점에서, 다른 프로세서들은 이 표에 나타내지 않은 다른 연산들을 수행하고 있다.
시간 T5에서, 각 프로세서가 하부객체 1의 정보 중 하나에 대한 연산을 수행하는 것으로 도시되어 있다.
프로세서가 하부객체의 기본 정보 모두에 대한 특정 연산을 수행한 경우, 그 다음 할당된 연산으로 진행한다. 따라서, ProcA 프로세서는 T6으로부터 OP6 연산을 수행한다.
일단 프로세서가 자신에게 할당된 특정 연산들을 수행했다면, 다음의 하부객체가 처리된다. 2개의 상이한 하부객체들(하부객체 1 및 하부객체 2)은 따라 플랫폼에서 동시에 처리된다.
이 표에서, 각각의 특정 연산은 N회 수행되는 것이 명백히 나타내어져 있다(여기서, N = 5).
이러한 시퀀싱 스케줄은 프로세서의 차원들 중 하나에서의 순환적 체인에 의해 얻어진다. 따라서, 기본 정보는 하나의 계산 유닛으로부터 다른 계산 유닛으로 전송할 수 있다. 예를 들어, 기본 정보 IE1이 모든 프로세서를 통과하여, 특정 연산 OP1 내지 OP5를 거친 후, ProcA 프로세서에 돌아가, 다시 사이클을 시작하고, 연산 OP6 내지 OP7을 거친다. 초기 기본 정보 IE1은 모든 단계에서 IE1 정보일 필요는 없다는 것을 주의한다.
도 7에 도시된 제2 예에서, 플랫폼은 공통 메모리에 연결된 5개의 프로세서를 포함한다. 이러한 구조는 전통적인 것이며: ("Single Instruction Multiple Data" 즉 SIMD 유형의) 벡터 신호 프로세서의 구조에 대응한다. 본 예에서, 각각의 프로세서는 개별적으로 상관 표 T와 같은 파라미터들을 포함할 수 있는 작은 메모리에 연결된다. 본 구조에 있어서, 각각의 프로세서는 특정 연산 중 모두를 수행한다. 따라서, 프로세서 모두는 동일한 인스트럭션의 집합 INS을 수신한다.
제2 예에서, 연산들 중 하나는 하나 이상의 기본 정보를 변경하기 위해 표를 이용하는 것을 포함하는 경우를 고려한다. 상기에서 알 수 있듯이, 각 프로세서는 자신의 표에 액세스하며, 모든 표는 동일하다. 일 대체예에서, 각 메모리는 프로세서들의 그룹에 의해 공유된다. 일 대체예에서, 프로세서의 집합은 동일한 메모리를 공유하며, 동시에 동일한 파라미터를 취득한다; 이 경우, 상관 표가 적용되어, 예를 들어, 다항식을 계산하기 위해 하나 이상의 파라미터를 이용한 계산에 의해 수행되어야 한다.
이는 병렬 연산을 포함한다: 각각의 공정 시간에 있어서, 모든 프로세서는 상이한 기본 정보에 대하여 동일한 연산을 수행한다. 이 공정이 이하 표 2에 도시되어 있다:
이 표에서, 공정 진행 시간은 T1, T2, ..., T10으로 표기되어 있다.
Figure 112008051947198-PCT00002
이 표에서, 주어진 시간 Ti에서, 특정 연산 OPi는 기본 정보 IE1 내지 IE5에 대해 각각 프로세서 ProcA 내지 ProcE에 의해 수행된다는 것을 알 수 있다.
10회의 증분 후에, 특정 연산들의 시퀀스 내의 각각의 특정 연산이 하부객체의 기본 정보 각각에 대하여 수행되었다고 할 수 있다.
이 경우, 특정 연산들은 모든 프로세서에 의해 병렬로 수행되므로, 효과가 없는 연산들로 특정 연산들의 시퀀스를 완료할 필요는 없을 것으로 보인다. 이와 같이, 일단 연산 OP8이 완료되면, 연산 OP1을 이하의 하부객체를 구성하는 기본 정보에 적용함으로써 프로세스가 반복될 수 있다.
도 8에 도시된 제3 예에서, 플랫폼은 PC 형태의 컴퓨터에 존재하는 벡터 신호 프로세서와 마찬가지로 공통 메모리에 연결된 5개의 프로세서로 이루어지는 벡터 신호 프로세서를 포함한다. 이들은 또한 모두 파라미터들, 특히, 상관표를 포함할 수 있는 작은 메모리에 연결된다. 이 구조에서, 각각의 프로세서는 특정 연산 모두를 수행한다. 따라서, 모든 프로세서들은 수행될 특정 연산들 모두를 기술하는 데이터를 포함하는 INS 인스트럭션의 동일한 집합을 수신한다.
본 예에서, 2개의 특정 연산의 시퀀스가 표를 이용하여 하나 이상의 기본 정보를 변경하는 것을 포함하는 경우가 고려되어진다. 여기서, 표들은 하나의 단일 위치에 존재하며, 이에 따라 프로세서들은 이들을 공유하여야 한다.
공정의 시작에서, 하부객체의 상이한 기본 정보에 대하여 프로세서 모두가 동일한 하나의 연산을 동시에 수행하므로, 병렬 연산이 수행된다. 이 프로세스가 아래 표 3에 도시되어 있다:
본 표에 있어서, 공정 진행 시간은 T1, T2, ..., T18로 표시되어 있다.
Figure 112008051947198-PCT00003
이 표의 첫번째 3개의 라인에 있어서, 주어진 시간 Ti에서, 기본 정보 IE1 내지 IE5의 각각에 대하여 프로세서 ProcA 내지 ProcE에 의해 특정 연산 OPi가 수행되는 것을 알 수 있다.
표를 이용하여 연산 OP4에 도달하는 경우, 모든 프로세서들이 이 표에 동시에 액세스할 수가 없으므로 액세스의 문제점에 직면한다. 따라서, 프로세서들은 "자신의 차례를 대기"하여야 하고, 즉, 표를 이용하여 자신이 이를 이용할 수 있도록 이전 프로세서가 종료할 때까지 대기하여야 한다. 따라서, 연산 OP4는 시간 T4 내지 T8의 각각에서 프로세서 ProcA 내지 ProcE에 의해 수행된다. 연산 OP5 또한 표를 사용하는 것으로 가정하면, 동일한 방식으로, 이하의 상황이 발생하게 된다: 연산 OP5는 각각 시간 T9 내지 T13에서 프로세서 ProcA 내지 ProcE 에 의해 수행된다.
일단 이 연산들이 수행되면, 프로세스는 정상적으로 계속할 수 있다.
도 9a는 하부객체의 차원들 중 하나에 따른 수개의 순환적 체인을 포함하는 플랫폼의 일례를 나타낸다. 이러한 제1 예에서, 객체는 2 차원의 화상이며, 하부객체는 4개의 기본 정보를 포함하며, 플랫폼은 수평으로 4개의 프로세서 및 수직으로 1개의 프로세서로 이루어진 직사각형에 대응하는 4*1 프로세서의 그리드(grid)에 따라서 배치된 4개의 프로세서를 포함한다. 프로세서들은 좌측에서 우측으로 호출된다: P1, P2, P3, 및 P4. 또한, 본 방법은 본 예에서 2개의 큐를 적용한다.
- 수평 큐 FHa는 입력이 P4의 출력에 출력이 프로세서 P1의 입력에 접속된다. P1의 출력은 P2의 입력에 접속된다. P2의 출력은 P3의 입력에 접속되며, P3의 출력은 P4의 입력에 접속된다.
- 수직 큐 FVa는 입력이 P1, P2, P3, 및 P4의 출력에, 출력이 프로세서 1, P2, P3, 및 P4의 입력에 접속된다.
- 특정 연산들의 시퀀스는 4개의 프로세서를 100% 사용하면서 임의의 수량의 수평 필터 FH를 적용할 수 있다. 예를 들어, 특정 연산 OS1의 결과와 좌측의 동일한 특정 연산 OS1의 결과 사이의 가산으로 이루어지는 필터의 계산을 수행하는 경우: 프로세서 P4의 연산 OS1 결과는 큐 FHa에 위치되며, 후속하는 하부객체의 계산 중에 P1 상의 OS2에 의해 사용되게 된다; 프로세서 P3의 연산 OS1의 결과는 P4 상의 OS1의 결과와 함께 P4 상의 OS2에 의해 사용되도록 프로세서 P4에 전달된다; 프로세서 P2의 연산 OS1 결과는 P3의 OS1의 결과와 함께 P3 상의 OS2에 의해 사용되도록 프로세서 P3에 전달된다; 프로세서 P1의 연산 OS1의 결과는 P2 상의 OS1의 결과와 함께 P2 상의 OS2에 의해 사용되도록 프로세서 P2에 전달된다; 이전 하부객체의 계산 중에 P4에 의해 수행되는 연산 OS1의 결과는 큐 FHa로부터 출력되어, P1 상의 OS1의 결과와 함께 P1 상의 OS2에 의해 사용되도록 프로세서 P1에 전달된다; 시퀀스에 대한 또 다른 특정 연산 OS3이 또 다른 수평 필터를 적용할 수 있으며, 올바른 순서로 데이터를 가져오도록 큐가 사용된다.
- 절절한 변경을 가하여, 특정 연산들의 시퀀스는 4개의 프로세서를 100% 사용하면서 임의의 수량의 수직 필터 FV를 적용할 수 있다,
- 마지막으로, 특정 연산들의 시퀀스는 4개의 프로세서를 100% 사용하면서, 수평 및 수직 차원 FVH 쌍방에 따라서 분리 불가능한 임의의 수량의 필터들을 적용할 수 있다; 예를 들어, 하나의 특정 연산 OS4으로부터 4개의 결과에 적용되는 분리 불가능한 3x3 필터는 FVa를 2회, FHa를 6회 기동시켜, 이전 하부객체의 OS4 결과의 집합과 조합되도록 이전에 계산된 4개의 OS4 결과의 8개 집합을 구한다; 예를 들어, 이들 분리 불가능한 필터는 2개의 큐가 올바른 순서로 데이터를 가져올 수 있도록 하여, 수직 및/또는 수평 필터들과 함께 사용될 수 있다.
2개의 필터가 적용되는 경우, 특정 연산들의 시퀀스는 각각 적어도 한번 시퀀스와는 구별되는 적어도 2개의 특정 연산들이 자신의 N회 적용중에, 또 다른 하부객체의 처리에 사용되는 결과를 생성하도록 이루어진다.
동일한 방식으로, 도 9b는 제2 예를 나타내며, 여기서, 객체는 2개의 차원을 갖는 화상이며, 하부객체는 4개의 기본 정보를 포함하며, 플랫폼은 수평으로 2개의 프로세서 및 수직으로 2개의 프로세서로 이루어진 직사각형에 대응하는 2*2 프로세서의 격자에 따라서 배치되는 4개의 프로세서들을 포함한다. 프로세서들은 좌측에서 우측으로 호출된다: 최상 라인의 P4 및 P5 및 최하 라인의 P6 및 P7. 본 방법은 또한 2개의 큐를 사용하며, 본 예에서:
- 수평 큐 FHb는 입력이 P3 및 P6의 출력에 접속되며, 출력이 P1 및 P4의 입력에 접속된다.
- 수직 큐 FVb는 입력이 P4 및 P5의 출력에 접속되며, 출력이 프로세서 P6 및 P7의 입력에 접속된다.
도 9a의 예에서와 같이, 특정 연산들의 시퀀스는 4개의 프로세서 모두를 100% 사용하면서 임의의 수량의 수직 및/또는 수평 필터 및/또는 분리 불가능한 필터들을 적용할 수 있다.
도 9a에 도시된 제3 예에 있어서, 플랫폼은 수평 큐 FHc 및 수직 큐 FVc에 접속된 하나의 프로세서 P8를 포함한다. 이들 2개의 큐는 후속하여 재사용하도록 특정 연산들의 결과를 저장하기 위해 프로세서에 의해 사용될 수 있다.
또한, 도 9a의 예에 있어서, 특정 연산들의 시퀀스는 프로세서를 100% 사용하면서 임의의 수량의 수직 및/또는 수평 필터들 및/또는 분리 불가능한 필터들을 적용할 수 있다.

Claims (83)

  1. 하나 이상의 프로세서들 및 메모리들을 갖는 플랫폼에서, 동일한 종류의 기본 정보(254, 256, 258, 260, 154, 156, 158 및 160)로 구성된 객체(255)를 처리하는 방법으로서, 본 방법은, 처리 대상 객체를 각각 N개의 기본 정보(254, 256, 258, 154, 156 및 158)로 구성되는 적어도 2개의 하부객체들(250, 251, 252 및 253)로 분해하는 단계를 포함하고, 모든 하부객체들(250, 251, 252 및 253)은 동일한 수량 N개의 기본 정보를 가지고, 상기 처리 연산은 각각의 하부객체(250, 251, 252, 253)의 기본 정보에 대하여 적어도 하나의 특정 연산들의 시퀀스를 수행하는 것을 포함하며, 본 방법은, 한편으로는 각 하부객체에 대한 각각의 기본 정보가 적어도 한번씩 적용되고, 다른 한편으로는, 각 특정 연산의 N개의 결과들이 산출되도록 각각의 하부객체에 대하여 각각의 특정 연산을 적어도 N회 수행하는 단계를 더 포함하며, 특정 연산들의 시퀀스는 시퀀스의 적어도 하나의 특정 연산(262)이 자신의 N회 적용들(262a, 262b, 262c, 262d, 262e, 262f)을 통해서 다른 하부객체(260, 160)의 처리에 사용되는 결과를 적어도 한번 산출하는 처리 방법.
  2. 제1항에 있어서,
    상기 객체는 차원 DO를 포함하고, 상기 하부객체들은 상기 객체의 차원 DO에서 선택된 차원 DSO를 포함하며, 상기 객체를 하부객체들로 분해하는 것은 상기 하부객체들의 차원들 중 적어도 하나에 따라서, 상기 하부객체들이 오버레 이(overlay) 되지 않도록 되는 처리 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 플랫폼은 하부객체의 처리 중에 수행되고 다른 하부객체의 처리를 위해 사용된 특정 연산들로부터의 결과들 및/또는 기본 정보를 저장하기 위한 적어도 하나의 객체간(inter-object) 통신 메모리를 포함하는 처리 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 특정 연산들의 시퀀스는 상기 객체의 처리 중에 동일한 데이터를 적용하는 하나의 단일한 특정 연산만을 포함하는 처리 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 객체는 차원 DO를 포함하고, 상기 기본 정보는 상기 객체의 DE 차원에 따라, 이후 다른 차원들에 따라 상기 플랫폼으로 전송되고, 상기 하부객체들은 상기 객체의 차원 DO로부터 선택된 차원 DSO를 포함하고 DE 차원을 포함하며, 상기 처리는 상기 DE 차원에 따라 수행되는 적어도 하나의 내부의 하부객체 스크롤링 루프를 더 포함하는 처리 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 객체는 차원 DO를 포함하고, 상기 기본 정보는 상기 객체의 DE 차원에 따라, 그 후 다른 차원들에 따라 상기 플랫폼으로 전송되고, 상기 하부객체들은 상기 객체의 차원 DO를 포함하거나 또는 상기 하부객체들은 상기 객체의 차원 DO로부터 선택된 차원 DO-1을 포함하고 DE 차원은 포함하지 않으며, 상기 처리는 상기 DE 차원에 따라 수행되는 적어도 하나의 내부의 하부객체 스크롤링 루프를 더 포함하는 처리 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    각 차원에서 하부객체들의 크기는 상기 객체의 크기, 및/또는 상기 플랫폼으로 전송되는 기본 정보의 전송 속도, 및/또는 상기 플랫폼의 계산 속도 및/또는 적어도 하나의 상기 플랫폼의 메모리의 크기 및 속도에 따라 결정되는 처리 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 특정 연산의 적어도 일부는 적어도 하나의 파라미터 값을 적용하고, 상기 동일한 특정 연산을 동시에 계산하는 Q개의 계산 유닛에 의해 수행되며, 상기 특정 연산들의 시퀀스는 적어도 하나의 특정 선택 연산을 포함하고, 상기 특정 선택 연산은, 적어도 하나의 기본 정보 및/또는 적어도 하나의 특정 연산 결과 및/또는 적어도 하나의 파라미터 값에 따라서 각각의 계산 유닛에 대하여 차별화되는 방식으로 Q개의 계산 유닛들 상에서 동시에 C개의 파라미터 값들 중 파라미터 값을 선택하는 처리 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    특정 연산들의 적어도 일부는 동일한 특정 연산을 동시에 계산하는 Q개의 계산 유닛들에 의해 수행되며, 상기 특정 연산들의 시퀀스는 적어도 하나의 특정 선택 연산을 포함하며, 상기 특정 선택 연산은, 적어도 하나의 기본 정보 및/또는 적어도 하나의 특정 연산 결과 및/또는 적어도 하나의 파라미터 값으로부터 구한 상대 변위에 따라서, 각각의 계산 유닛에 대하여 차별화되는 방식으로 Q개의 계산 유닛들 상에서 동시에 데이터 C로부터 데이터 항목을 선택하는 처리 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 특정 연산들의 시퀀스는 적어도 하나의 특정 위치 연산을 포함하고 상기 객체는 차원 DO를 포함하며 이 특정 위치 연산은 차원 DO 중 하나에 따라 위치 정보를 산출하는 처리 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 특정 연산들의 시퀀스는, 적어도 하나의 기본 정보 및/또는 적어도 하나의 특정 연산 결과 및/또는 적어도 하나의 파라미터 값에 따라서 상대 위치를 산출하는 적어도 하나의 특정 연산을 포함하는 처리 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    특정 연산들의 적어도 일부는 Q개의 계산 유닛들에 의해 수행되고, Q는 N과 같거나 또는 N의 약수인 처리 방법.
  13. 제12항에 있어서,
    상기 Q와 N은 상이하고, 하부객체들의 처리는 N/Q 이터레이션의 단지 하나의 내부 루프만을 포함하는 처리 방법.
  14. 제12항 또는 제13항에 있어서,
    상기 Q 계산 유닛들은 동일한 처리 방법.
  15. 제1항 내지 제14항 중 어느 한 항에 있어서,
    하나의 동일한 특정 연산으로부터의 N개의 결과들은 하나의 동일한 계산 유닛에 의해 계산되는 처리 방법.
  16. 제1항 내지 제15항 중 어느 한 항에 있어서,
    적어도 하나의 특정 연산은 적어도 하나의 파라미터를 적용하고, 이 특정 연산은 상기 파라미터 값들의 일부를 포함하는 메모리 유닛에 액세스를 갖는 적어도 하나의 계산 유닛에 의해 수행되고, 상기 일부는 상기 계산 유닛에 의해 수행되는 특정 연산들에 따라서 결정되는 처리 방법.
  17. 제1항 내지 제16항 중 어느 한 항에 있어서,
    적어도 하나의 특정 연산은 적어도 하나의 파라미터를 적용하고, 이 파라미터의 값은 하부객체의 위치 및/또는 처리 대상 객체의 기본 정보에 의존하는 처리 방법.
  18. 제1항 내지 제17항 중 어느 한 항에 있어서,
    상기 특정 연산들은 연쇄된(chained) 계산 유닛들에 의해 수행되는 처리 방법.
  19. 제1항 내지 제18항 중 어느 한 항에 있어서,
    상기 특정 연산들은 일 차원의 체인에 따라 연쇄된 계산 유닛들에 의해 수행되는 처리 방법.
  20. 제1항 내지 제19항 중 어느 한 항에 있어서,
    상기 특정 연산들은 적어도 하나의 순환적 체인에 따라서 연쇄된 계산 유닛들에 의해 수행되는 처리 방법.
  21. 제1항 내지 제20항 중 어느 한 항에 있어서,
    상기 특정 연산들은 적어도 하나의 순환적 체인에 따라서 연쇄된 계산 유닛들에 의해 수행되고, 상기 순환적 체인은 적어도 하나의 큐를 더 포함하는 처리 방법.
  22. 제1항 내지 제21항 중 어느 한 항에 있어서,
    상기 하부객체는 차원 DSO를 포함하고, 상기 특정 연산들은 상기 하부객체들의 차원들의 각각에 대하여 적어도 하나의 순환적 체인에 따라서 연쇄된 계산 유닛들에 의해 수행되며, 상기 하부객체들의 D1 특정 차원들의 각각에 대하여 순환적 체인(들)은 상기 하부객체들의 D1 특정 차원에 대하여 순환적 체인(들) 사이에서 공유되거나 또는 공유되지 않는 적어도 하나의 큐를 더 포함하는 처리 방법.
  23. 제1항 내지 제22항 중 어느 한 항에 있어서,
    상기 하부객체는 차원 DSO를 포함하고, 상기 특정 연산들은 적어도 하나의 CC1 순환적 체인에 의해 상기 하부객체들의 DD 결정된 차원들의 하나에 따라서 연쇄된 계산 유닛들에 의해 수행되고, 상기 CC1 순환적 체인은 적어도 하나의 큐를 더 포함하고, 상기 방법은 적어도 하나의 특정 인스트럭션에 대하여, 상기 특정 인스트럭션의 각각의 적용에 대해, UC1 계산 유닛 상에서 수행된 상기 특정 인스트럭션으로부터 상기 체인에 따라서 상기 UC1 계산 유닛에 이어지는 큐 또는 UC2 계산 유닛으로 상기 적용의 결과를 전송하는 단계를 더 포함하는 처리 방법.
  24. 제1항 내지 제23항 중 어느 한 항에 있어서,
    상기 하부객체와 관련하여 다른 하부객체의 상대 위치에 따른 상기 다른 하부객체의 하부처리 중에 사용된 특정 연산들의 결과들을 그룹화하고 메모리에 저장 하는 단계를 더 포함하는 처리 방법.
  25. 제1항 내지 제24항 중 어느 한 항에 있어서,
    상기 특정 연산들은 연쇄된 계산 유닛들에 의해 수행되고, 상기 방법은 상기 시퀀스 및 상기 계산 유닛들의 체인에 따라 상기 특정 연산들을 상기 계산 유닛들에 할당하는 단계를 포함하는 처리 방법.
  26. 제1항 내지 제25항 중 어느 한 항에 있어서,
    상기 특정 연산들의 종류 및/또는 순서는 수정될 수 있는 처리 방법.
  27. 제1항 내지 제26항 중 어느 한 항에 있어서,
    상기 특정 연산들은 특정 연산들의 적어도 하나의 미리 정해진 시퀀스에 따라서 케이블된(cabled) 계산 유닛들에 의해 수행되는 처리 방법.
  28. 제1항 내지 제27항 중 어느 한 항에 있어서,
    적어도 하나의 특정 연산이 기본 정보 및/또는 특정 연산들로부터의 결과들을 저장하기 위한 제한된 용량의 메모리 유닛을 구비한 적어도 하나의 계산 유닛에 의해 수행되고, 이 메모리는 많아야 16개의 기본 정보 및/또는 특정 연산들로부터의 결과들을 포함하는 처리 방법.
  29. 제1항 내지 제28항 중 어느 한 항에 있어서,
    적어도 하나의 특정 연산이, 적어도 하나의 기본 정보 및/또는 다른 하부객체들로부터의 적어도 하나의 특정 연산 결과를 포함하는 통신 메모리 유닛에 대한 액세스를 갖는 적어도 하나의 계산 유닛에 의해 수행되는 처리 방법.
  30. 제29항에 있어서,
    상기 통신 메모리 유닛은 0.3*N 액세스/하부객체/특정 연산보다 작은 액세스 속도를 갖는 처리 방법.
  31. 제1항 내지 제30항 중 어느 한 항에 있어서,
    상기 처리 플랫폼이 휴대폰에 통합되고, Q 값이 1로 고정되며 N이 2에서 16 사이인 경우에 특히 사용되는 처리 방법.
  32. 제1항 내지 제31항 중 어느 한 항에 있어서,
    적어도 하나의 특정 연산이 적어도 2개의 동일한 계산 유닛들에 의해 동시에 수행되는 처리 방법.
  33. 제1항 내지 제32항 중 어느 한 항에 있어서,
    상기 특정 연산들로부터의 결과들의 적어도 일부는 어드레스에서 메모리에 "기본 어드레스 + 오프셋" 또는 "(기본 어드레스 + 오프셋) 모듈로(modulo) (버퍼 메모리의 크기)"의 포맷으로 저장되며, 상기 오프셋은 하나의 동일한 특정 연산으로부터 나온 모든 결과들에 대해 상수인 처리 방법.
  34. 제33항에 있어서,
    상기 기본 어드레스는 상기 하부객체가 처리 연산 중에 변경될 때마다 수정되는 처리 방법.
  35. 제1항 내지 제34항 중 어느 한 항에 있어서,
    상기 특정 연산들로부터의 결과들의 적어도 일부는 하나의 동일한 연산의 모든 결과들에 대하여 미리 결정된 어드레스에서 메모리에 저장되는 처리 방법.
  36. 제1항 내지 제35항 중 어느 한 항에 있어서,
    상기 특정 연산들은 레지스터들(registers)의 적어도 하나의 유닛 및 적어도 하나의 하부객체 통신 메모리를 구비한 적어도 하나의 계산 유닛에 의해 수행되고, 처리 플랫폼의 트랜지스터들의 수는, 상기 통신 메모리 내의 연관된 레지스터를 포함하여, 계산 유닛당 10,000개보다 작은 처리 방법.
  37. 제1항 내지 제36항 중 어느 한 항에 있어서,
    상기 플랫폼에는 일반 포맷의 데이터로부터 계산된 특정 포맷의 데이터가, 바람직하게는 직접 구비되고, 상기 일반 포맷의 데이터는 일반 연산들의 적어도 하 나의 시퀀스를 설명하는 제1 데이터 항목들을 포함하고, 수행되는 특정 포맷의 데이터의 계산은 상기 플랫폼의 기본 정보에 대한 스크롤링 모드와 일반 연산들로부터의 특정 연산들을 설명하고, 이 특정 연산들은 상기 플랫폼 내의 처리 중에 객에 상에서 수행될 특정 연산들의 시퀀스를 형성하는 처리 방법.
  38. 제1항 내지 제37항 중 어느 한 항에 있어서,
    상기 처리 대상 객체는 화상이고 상기 기본 정보는 이 화상의 픽셀들인 처리 방법.
  39. 제1항 내지 제38항 중 어느 한 항에 있어서,
    상기 처리 플랫폼은 화상 캡처링 및/또는 렌더링 장치의 부분이고, 상기 연산들은 연산들의 시퀀스 및/또는 처리 플랫폼 및/또는 처리 대상 객체에 의존하는 값들을 갖는 파라미터들을 적용하고, 이 파라미터 값들은 화상 캡처링 및/또는 렌더링 장치를 위한 광학기기 및/또는 센서 및/또는 이미저(imager) 및/또는 전자장치 및/또는 소프트웨어의 특성에 링크되는 처리 방법.
  40. 제1항 내지 제37항 중 어느 한 항에 있어서,
    상기 처리 대상 객체는 디지털 오디오 신호이고, 상기 기본 정보는 이 신호의 오디오 샘플들인 처리 방법.
  41. 제1항 내지 제37항 중 어느 한 항에 있어서,
    상기 처리 대상 객체는 수치적 메시(numerical mesh)이고, 상기 기본 정보는 메싱(meshing)의 각 지점을 특성화하는 공간적 및/또는 시간적 정보인 처리 방법.
  42. 동일한 종류의 기본 정보(elementary information)(54, 56, 58, 60, 154, 156, 158 및 160)로 구성된 객체(55)를 처리하기 위한, 하나 이상의 프로세서들 및 메모리들을 갖는 플랫폼으로서, 처리 대상 객체를 각각 N개의 기본 정보(54, 56, 58, 154, 156 및 158)로 구성되는 적어도 2개의 하부객체들(50, 51, 52 및 53)로 분해하는 수단 - 모든 하부객체들(50, 51, 52 및 53)은 동일한 수량 N개의 기본 정보를 가짐 -, 및 각각의 하부객체(50, 51, 52, 53)의 기본 정보에 대하여 적어도 하나의 특정 연산들의 시퀀스를 수행하는 수단을 포함하며, 이 처리 수단들은 한편으로는 각 하부객체에 대한 각각의 기본 정보가 적어도 한번씩 적용되고, 다른 한편으로는, 각 특정 연산의 N개의 결과들이 산출되도록 각각의 하부객체에 대하여 각각의 특정 연산을 적어도 N회 수행하는 수단을 포함하며,
    상기 처리 수단은 특정 연산들의 시퀀스의 적어도 하나의 특정 연산(62)이 자신의 N회 적용들(62a, 62b, 62c, 62d, 62e, 62f) 중에, 다른 하부객체(60, 160)의 처리에 사용되는 결과를 적어도 한번 산출하는 플랫폼.
  43. 제42항에 있어서,
    상기 처리 대상 객체는 차원 DO를 포함하고, 상기 하부객체들은 상기 객체의 차원 DO에서 선택된 차원 DSO를 포함하며, 상기 객체를 분해하는 수단은 상기 하부객체들의 차원들 중 적어도 하나에 따라서, 상기 하부객체들이 오버레이 되지 않도록 하는 플랫폼.
  44. 제42항 또는 제43항에 있어서,
    하부객체의 처리 중에 수행되고 다른 하부객체의 처리를 위해 사용된 특정 연산들로부터의 결과들 및/또는 기본 정보를 저장하기 위한 적어도 하나의 객체간 통신 메모리를 포함하는 플랫폼.
  45. 제42항 내지 제44항 중 어느 한 항에 있어서,
    상기 객체의 처리 중에 상기 동일한 데이터를 적용하는 하나의 단일한 특정 연산만을 포함하는 특정 연산들의 시퀀스를 수행하기 위한 수단을 포함하는 플랫폼.
  46. 제42항 내지 제45항 중 어느 한 항에 있어서,
    상기 객체는 차원 DO를 포함하고, 기본 정보는 상기 객체의 DE 차원에 따라, 이후 다른 차원들에 따라 수신되고, 상기 하부객체들은 상기 객체의 차원 DO로부터 선택된 차원 DSO를 포함하고 DE 차원을 포함하며, 상기 플랫폼은 처리 연산에 포함된, 내부의 하부객체 스크롤링 루프가 상기 DE 차원에 따라 수행되도록 하는 플랫폼.
  47. 제42항 내지 제46항 중 어느 한 항에 있어서,
    상기 객체는 차원 DO를 포함하고, 기본 정보는 상기 객체의 DE 차원에 따라, 이후 다른 차원들에 따라 수신되고, 상기 하부객체들은 상기 객체의 차원 DO 또는 상기 객체의 차원 DO로부터 선택된 차원 DO-1을 포함하고, 상기 DE 차원은 포함되지 않으며, 상기 플랫폼은 상기 처리 연산에 포함된, 내부의 하부객체 스크롤링 루프가 상기 DE 차원에 따라 수행되도록 하는 플랫폼.
  48. 제42항 내지 제47항 중 어느 한 항에 있어서,
    처리 대상 객체를 분해하기 위한 수단은 각 차원에서 하부객체들의 크기가 상기 객체의 크기, 및/또는 상기 플랫폼에 의해 수신되는 기본 정보의 속도, 및/또는 상기 플랫폼의 계산 속도 및/또는 적어도 하나의 상기 플랫폼의 메모리의 크기 및 속도에 따라 결정되도록 하는 플랫폼.
  49. 제42항 내지 제48항 중 어느 한 항에 있어서,
    상기 특정 연산의 적어도 일부가 적어도 하나의 파라미터 값을 적용하는 경우에, 동일한 특정 연산을 동시에 계산하는 Q개의 계산 유닛들을 포함하고, 상기 플랫폼은, 적어도 하나의 특정 선택 연산을 포함하는 적어도 하나의 특정 연산들의 시퀀스를 수행하기 위한 수단을 더 포함하며, 상기 특정 선택 연산은, 적어도 하나의 기본 정보 및/또는 적어도 하나의 특정 연산 결과 및/또는 적어도 하나의 파라 미터 값에 따라서 각각의 프로세서에 대하여 차별화되는 방식으로 Q개의 계산 유닛들 상에서 동시에 파라미터 값들 C로부터 파라미터 값의 선택을 수행하는 플랫폼.
  50. 제42항 내지 제49항 중 어느 한 항에 있어서,
    동일한 특정 연산을 동시에 계산하는 Q개의 계산 유닛들을 포함하고, 상기 플랫폼은, 적어도 하나의 특정 선택 연산을 포함하는 적어도 하나의 상기 특정 연산들의 시퀀스를 수행하기 위한 수단을 더 포함하며, 상기 특정 선택 연산은, 적어도 하나의 기본 정보 및/또는 적어도 하나의 특정 연산 결과 및/또는 적어도 하나의 파라미터 값에 따라서, 각각의 프로세서에 대하여 차별화되는 방식으로 Q개의 계산 유닛들 상에서 동시에 데이터 C로부터 데이터의 선택을 수행하는 플랫폼.
  51. 제42항 내지 제50항 중 어느 한 항에 있어서,
    적어도 하나의 특정 위치 연산을 포함하는 특정 연산들의 시퀀스를 수행하기 위한 수단을 포함하고, 상기 객체는 차원 DO를 포함하며, 상기 특정 위치 연산은 상기 차원 DO 중 하나에 따라 위치 정보를 산출하는 플랫폼.
  52. 제42항 내지 제51항 중 어느 한 항에 있어서,
    적어도 하나의 기본 정보 및/또는 적어도 하나의 특정 연산 결과 및/또는 적어도 하나의 파라미터 값에 따라서 상대 위치를 산출하는 적어도 하나의 특정 연산을 포함하는 특정 연산들의 시퀀스를 수행하기 위한 수단을 포함하는 플랫폼.
  53. 제42항 내지 제52항 중 어느 한 항에 있어서,
    특정 연산들의 적어도 일부에서 수행하기 위한 Q개의 계산 유닛들을 포함하고, 여기서 Q는 N과 같거나 또는 N의 약수인 플랫폼.
  54. 제53항에 있어서,
    상기 Q 계산 유닛들의 수는 N과 상이하고, 상기 하부객체의 처리는 N/Q 이터레이션의 단지 하나의 내부 루프만을 포함하는 플랫폼.
  55. 제53항 또는 제54항에 있어서,
    상기 Q 계산 유닛들은 동일한 플랫폼.
  56. 제42항 내지 제55항 중 어느 한 항에 있어서,
    하나의 동일한 특정 연산으로부터의 N개의 결과들은 하나의 동일한 계산 유닛에 의해 계산되도록 하는 수단을 포함하는 플랫폼.
  57. 제42항 내지 제56항 중 어느 한 항에 있어서,
    - 적어도 하나의 특정 연산이 적어도 하나의 파라미터를 적용할 때, 이 특정 연산을 수행하기 위한 수단, 및
    - 상기 파라미터 값들의 일부를 포함하는 메모리 유닛에 액세스를 갖는 계산 유닛으로서, 상기 플랫폼이 상기 일부가 상기 계산 유닛에 의해 수행되는 특정 연산들에 따라서 결정되게 하는 계산 유닛
    을 포함하는 플랫폼.
  58. 제42항 내지 제57항 중 어느 한 항에 있어서,
    적어도 하나의 특정 연산이 적어도 하나의 파라미터를 적용할 때, 이 파라미터의 값이 상기 하부객체의 위치 및/또는 상기 처리 대상 객체의 기본 정보에 의존하게 하는 수단을 포함하는 플랫폼.
  59. 제42항 내지 제58항 중 어느 한 항에 있어서,
    연쇄된 계산 유닛들을 포함하는 플랫폼.
  60. 제42항 내지 제59항 중 어느 한 항에 있어서,
    일 차원의 체인에 따라 연쇄된 계산 유닛들을 포함하는 플랫폼.
  61. 제42항 내지 제60항 중 어느 한 항에 있어서,
    적어도 하나의 순환적 체인에 따라서 연쇄된 계산 유닛들을 포함하는 플랫폼.
  62. 제42항 내지 제61항 중 어느 한 항에 있어서,
    적어도 하나의 순환적 체인에 따라서 연쇄된 계산 유닛들을 포함하고, 상기 순환적 체인은 또한 적어도 하나의 큐를 더 포함하는 플랫폼.
  63. 제42항 내지 제62항 중 어느 한 항에 있어서,
    상기 하부객체들의 차원들의 각각에 대하여 적어도 하나의 순환적 체인에 따라서 연쇄된 계산 유닛들을 포함하고, 상기 하부객체는 차원 DSO를 포함하고, 상기 하부객체들의 D1 특정 차원들의 각각에 대하여 상기 순환적 체인(들)은 상기 하부객체들의 D1 특정 차원에 대하여 순환적 체인(들) 사이에서 공유되거나 또는 공유되지 않는 적어도 하나의 큐를 더 포함하는 플랫폼.
  64. 제42항 내지 제63항 중 어느 한 항에 있어서,
    CC1 순환적 체인에 의해 상기 하부객체들의 DD 결정된 차원들의 적어도 하나에 따라서 연쇄된 계산 유닛들을 포함하고, 상기 순환적 체인은 적어도 하나의 큐를 더 포함하고, 상기 플랫폼은 특정 인스트럭션의 각각의 적용에 대하여, 제1 UC1 계산 유닛의 상기 적용의 결과가 상기 체인에 따라서 상기 제1 UC1 계산 유닛에 이어지는 큐 또는 UC2 계산 유닛으로 전송되는 플랫폼.
  65. 제42항 내지 제64항 중 어느 한 항에 있어서,
    상기 하부객체와 관련하여 다른 하부객체의 상대 위치에 따른 다른 하부객체의 하부처리 중에 사용된 특정 연산들의 결과들을 저장하기 위한 적어도 하나의 메 모리를 포함하는 플랫폼.
  66. 제42항 내지 제65항 중 어느 한 항에 있어서,
    적어도 하나의 순환적 체인에 따라서 연쇄된 계산 유닛들, 및 상기 계산 유닛들 및 상기 시퀀스의 체인에 따라 상기 특정 연산들을 상기 계산 유닛들에 할당하기 위한 수단을 포함하는 플랫폼.
  67. 제42항 내지 제66항 중 어느 한 항에 있어서,
    특정 연산들의 종류 및/또는 순서가 수정될 수 있도록 하는 수단을 포함하는 플랫폼.
  68. 제42항 내지 제67항 중 어느 한 항에 있어서,
    특정 연산들의 적어도 하나의 미리 정해진 시퀀스에 따라서 상기 특정 연산들을 수행하기 위한 케이블된 계산 유닛들을 포함하는 플랫폼.
  69. 제42항 내지 제68항 중 어느 한 항에 있어서,
    기본 정보 및/또는 특정 연산들로부터의 결과들을 저장하기 위한 제한된 용량의 메모리 유닛을 구비한 적어도 하나의 계산 유닛을 포함하고, 이 메모리는 적어도 16개의 기본 정보 및/또는 특정 연산들로부터의 결과들을 포함하는 플랫폼.
  70. 제42항 내지 제69항 중 어느 한 항에 있어서,
    적어도 하나의 기본 정보 및/또는 다른 하부객체들로부터 나오는 특정 연산들로부터의 적어도 하나의 결과를 포함하는 통신 메모리에 대한 액세스를 갖는 적어도 하나의 계산 유닛을 포함하는 플랫폼.
  71. 제70항에 있어서,
    상기 통신 메모리 유닛은 0.3*N 액세스/하부객체/특정 연산보다 작은 액세스 속도를 갖는 플랫폼.
  72. 제42항 내지 제71항 중 어느 한 항에 있어서,
    특히 휴대폰에 통합되고, Q 값이 1로 고정되고 N이 2에서 16 사이가 되도록 하는 수단을 포함하는 플랫폼.
  73. 제42항 내지 제72항 중 어느 한 항에 있어서,
    적어도 하나의 동일한 특정 연산을 동시에 수행하는 적어도 2개의 동일한 계산 유닛들을 포함하는 플랫폼.
  74. 제42항 내지 제73항 중 어느 한 항에 있어서,
    특정 연산들로부터의 결과들의 적어도 일부가 어드레스에서 메모리에 "기본 어드레스 + 오프셋" 또는 "(기본 어드레스 + 오프셋) 모듈로 (버퍼 메모리의 크 기)"의 포맷으로 저장되도록 하는 수단을 포함하고, 상기 오프셋은 하나의 동일한 특정 연산의 모든 결과들에 대해 상수인 플랫폼.
  75. 제74항에 있어서,
    상기 하부객체가 처리 연산 중에 변경될 때마다 상기 기본 어드레스를 변경하기 위한 수단을 포함하는 플랫폼.
  76. 제42항 내지 제75항 중 어느 한 항에 있어서,
    특정 연산들로부터의 결과들의 적어도 일부가 하나의 동일한 연산으로부터의 모든 결과들에 대하여 미리 결정된 어드레스에서 메모리에 저장되도록 하는 수단을 포함하는 플랫폼.
  77. 제42항 내지 제76항 중 어느 한 항에 있어서,
    레지스터들(registers)의 적어도 하나의 유닛 및 적어도 하나의 통신 메모리를 구비한 적어도 하나의 계산 유닛을 포함하고, 트랜지스터들의 수는, 상기 통신 메모리 내의 연관된 레지스터를 포함하여, 계산 유닛당 10,000개보다 작은 플랫폼.
  78. 제42항 내지 제77항 중 어느 한 항에 있어서,
    일반 포맷의 데이터로부터 계산된 특정 포맷의 데이터를 입력 상에서, 바람직하게는 직접 수신하기 위한 수단을 포함하고, 상기 일반 포맷의 데이터는 일반 연산들의 적어도 하나의 시퀀스를 설명하는 제1 데이터를 포함하고, 수행되는 특정 포맷의 데이터의 계산은 상기 플랫폼의 기본 정보에 대한 스크롤링 모드와 일반 연산들로부터의 특정 연산들을 설명하고, 이 특정 연산들은 특정 연산들의 시퀀스를 형성하고, 상기 플랫폼은 객체 상에서 특정 연산들의 상기 시퀀스를 수행하기 위한 수단을 포함하는 플랫폼.
  79. 제42항 내지 제78항 중 어느 한 항에 있어서,
    화상으로 이루어진 객체를 처리하기 위한 수단을 포함하고, 상기 기본 정보는 이 화상의 픽셀들인 플랫폼.
  80. 제42항 내지 제79항 중 어느 한 항에 있어서,
    화상 캡처링 및/또는 렌더링 장치의 부분이고, 상기 연산들은 연산들의 시퀀스 및/또는 상기 플랫폼 및/또는 처리 대상 객체에 의존하는 값들을 갖는 파라미터들을 적용하고, 이 파라미터 값들은 화상 캡처링 및/또는 렌더링 장치를 위한 광학기기 및/또는 센서 및/또는 이미저 및/또는 전자장치 및/또는 소프트웨어의 특성에 링크되는 플랫폼.
  81. 제42항 내지 제80항 중 어느 한 항에 있어서,
    디지털 오디오 신호로 이루어진 객체를 처리하기 위한 수단을 포함하고, 상기 기본 정보는 이 신호의 오디오 샘플들인 플랫폼.
  82. 제42항 내지 제81항 중 어느 한 항에 있어서,
    수치적 메시(numerical mesh)로 이루어진 객체를 처리하기 위한 수단을 포함하고, 상기 기본 정보는 메싱(meshing)의 각 지점을 특성화하는 공간적 및 시간적 정보인 플랫폼.
  83. 제1항 내지 제41항 중 어느 한 항을 따르는 처리 방법에 의해 처리된 객체.
KR1020087017736A 2005-12-19 2008-07-18 하나 이상의 프로세서와 메모리를 갖는 플랫폼 상에서객체를 처리하는 방법, 및 이 방법을 이용한 플랫폼 KR101391498B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0553945A FR2895102B1 (fr) 2005-12-19 2005-12-19 Procede pour traiter un objet dans une plateforme a processeur(s) et memoire(s) et plateforme utilisant le procede
FR0553945 2005-12-19
PCT/FR2006/051390 WO2007071884A2 (fr) 2005-12-19 2006-12-19 Procede pour traiter un objet dans une plateforme a processeur(s) et memoire(s) et plateforme utilisant le procede

Publications (2)

Publication Number Publication Date
KR20080080398A true KR20080080398A (ko) 2008-09-03
KR101391498B1 KR101391498B1 (ko) 2014-05-07

Family

ID=37307163

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087017736A KR101391498B1 (ko) 2005-12-19 2008-07-18 하나 이상의 프로세서와 메모리를 갖는 플랫폼 상에서객체를 처리하는 방법, 및 이 방법을 이용한 플랫폼

Country Status (7)

Country Link
US (1) US8412725B2 (ko)
EP (1) EP1964053A2 (ko)
JP (1) JP5025658B2 (ko)
KR (1) KR101391498B1 (ko)
CN (1) CN101375311A (ko)
FR (1) FR2895102B1 (ko)
WO (1) WO2007071884A2 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2253542T3 (es) 2001-07-12 2006-06-01 Do Labs Procedimiento y sistema para producir informaciones formateadas relacionadas con los defectos, como minimo, de una aparato de una cadena, en especial por efecto borroso.
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
US8755515B1 (en) * 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
MY155432A (en) 2010-03-18 2015-10-15 Nuodb Inc Database management system
US20150070138A1 (en) * 2012-07-06 2015-03-12 Alan Haddy Detection of buried assets using current location and known buffer zones
US11176111B2 (en) 2013-03-15 2021-11-16 Nuodb, Inc. Distributed database management system with dynamically split B-tree indexes
US10740323B1 (en) 2013-03-15 2020-08-11 Nuodb, Inc. Global uniqueness checking in distributed databases
US9501363B1 (en) 2013-03-15 2016-11-22 Nuodb, Inc. Distributed database management system with node failure detection
WO2014168913A1 (en) 2013-04-08 2014-10-16 Nuodb, Inc. Database management system with database hibernation and bursting
US10255547B2 (en) 2014-12-04 2019-04-09 Nvidia Corporation Indirectly accessing sample data to perform multi-convolution operations in a parallel processing system
US10884869B2 (en) 2015-04-16 2021-01-05 Nuodb, Inc. Backup and restore in a distributed database utilizing consistent database snapshots
US10180954B2 (en) 2015-05-29 2019-01-15 Nuodb, Inc. Disconnected operation within distributed database systems
US10067969B2 (en) 2015-05-29 2018-09-04 Nuodb, Inc. Table partitioning within distributed database systems
CN111213138A (zh) 2017-08-15 2020-05-29 诺宝公司 分布式数据库中的索引拆分

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4839801A (en) * 1986-11-03 1989-06-13 Saxpy Computer Corporation Architecture for block processing computer system
US4939642A (en) * 1989-02-01 1990-07-03 The Board Of Trustees Of The Leland Stanford Jr. University Virtual bit map processor
JP3305406B2 (ja) * 1993-04-26 2002-07-22 松下電器産業株式会社 プログラム制御のプロセッサ
DE69421103T2 (de) * 1993-01-22 2000-06-08 Matsushita Electric Ind Co Ltd Programmgesteuertes Prozessor
JP3316901B2 (ja) * 1993-01-22 2002-08-19 松下電器産業株式会社 データ分配回路
WO1999052040A1 (en) * 1998-04-08 1999-10-14 Stellar Technologies, Ltd. Architecture for graphics processing
FR2827459B1 (fr) 2001-07-12 2004-10-29 Poseidon Procede et systeme pour fournir a des logiciels de traitement d'image des informations formatees liees aux caracteristiques des appareils de capture d'image et/ou des moyens de restitution d'image
WO2003007237A1 (fr) 2001-07-12 2003-01-23 Do Labs Procede et systeme pour produire des informations formatees liees aux distorsions geometriques
ES2253542T3 (es) 2001-07-12 2006-06-01 Do Labs Procedimiento y sistema para producir informaciones formateadas relacionadas con los defectos, como minimo, de una aparato de una cadena, en especial por efecto borroso.
US6980980B1 (en) * 2002-01-16 2005-12-27 Microsoft Corporation Summary-detail cube architecture using horizontal partitioning of dimensions
US7158141B2 (en) * 2002-01-17 2007-01-02 University Of Washington Programmable 3D graphics pipeline for multimedia applications
WO2005064537A1 (en) * 2003-12-22 2005-07-14 Koninklijke Philips Electronics N.V. System for generating a distributed image processing application

Also Published As

Publication number Publication date
WO2007071884A2 (fr) 2007-06-28
US8412725B2 (en) 2013-04-02
EP1964053A2 (fr) 2008-09-03
JP2009524123A (ja) 2009-06-25
JP5025658B2 (ja) 2012-09-12
WO2007071884A3 (fr) 2007-08-16
FR2895102B1 (fr) 2012-12-07
CN101375311A (zh) 2009-02-25
KR101391498B1 (ko) 2014-05-07
US20080320038A1 (en) 2008-12-25
FR2895102A1 (fr) 2007-06-22

Similar Documents

Publication Publication Date Title
KR101391498B1 (ko) 하나 이상의 프로세서와 메모리를 갖는 플랫폼 상에서객체를 처리하는 방법, 및 이 방법을 이용한 플랫폼
KR101391465B1 (ko) 디지털 데이터 처리 방법 및 시스템
KR102258414B1 (ko) 처리 장치 및 처리 방법
US10776126B1 (en) Flexible hardware engines for handling operating on multidimensional vectors in a video processor
US10013733B2 (en) Processor, system, and method for efficient, high-throughput processing of two-dimensional, interrelated data sets
KR101391569B1 (ko) 디지털 처리 수단에 데이터를 제공하는 방법
JP6136190B2 (ja) 画像処理装置、撮像装置
JP6403430B2 (ja) 画像処理装置および画像処理方法
US7382937B2 (en) Method and apparatus for re-constructing high-resolution images
CN1311405C (zh) 图像处理装置
JP2017194736A (ja) メモリ制御装置及びメモリ制御方法
JP2015207101A (ja) アクセラレータ回路及び画像処理装置
US20150262325A1 (en) Device for image decomposition using a wavelet transform
JP6415086B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP5045652B2 (ja) 相関処理装置及びその相関処理装置で読みとり可能な媒体
JP6521763B2 (ja) 画像処理装置、撮像装置、画像処理方法、プログラム、及び記録媒体
JP2024015829A (ja) 画像処理装置及び画像処理回路
Kane An FPGA Based Hardware Accelerator for Remote Surveillance Cameras
JP2005210262A (ja) 画像処理装置

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

Payment date: 20170330

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180413

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190411

Year of fee payment: 6