KR20130095206A - 신호 처리 장치 및 반도체 장치 - Google Patents

신호 처리 장치 및 반도체 장치 Download PDF

Info

Publication number
KR20130095206A
KR20130095206A KR1020130010355A KR20130010355A KR20130095206A KR 20130095206 A KR20130095206 A KR 20130095206A KR 1020130010355 A KR1020130010355 A KR 1020130010355A KR 20130010355 A KR20130010355 A KR 20130010355A KR 20130095206 A KR20130095206 A KR 20130095206A
Authority
KR
South Korea
Prior art keywords
task
output
signal processing
data
input
Prior art date
Application number
KR1020130010355A
Other languages
English (en)
Inventor
케이스케 마츠다
Original Assignee
르네사스 일렉트로닉스 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 르네사스 일렉트로닉스 가부시키가이샤 filed Critical 르네사스 일렉트로닉스 가부시키가이샤
Publication of KR20130095206A publication Critical patent/KR20130095206A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Image Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

[과제] 화상 신호 등의 스트림 데이터에 대해 멀티태스크를 행하는 신호 처리 장치에 있어서, 우선 처리 요구에 따른 태스크 전환이 발생했을 때에, 저장해야 할 정보량을 필요 최소한으로 하여, 저장과 복귀에 필요로 하는 시간적인 오버헤드를 억제한다.
[해결 수단] 신호 처리부의 처리의 경과에 따른 스트림 데이터에서의 데이터의 위치 정보를 나타내는 포인터를 갖추고, 우선 태스크의 처리가 요구되었을 때에는, 그 포인터의 값만을 저장한다. 복귀 때에는, 저장한 포인터의 값에 근거하여, 복귀 후의 태스크에서 다음으로 출력해야 할 출력 스트림 데이터의 위치 정보를 구하고, 그 데이터를 산출하기 위해서 신호 처리부에 입력할 필요가 있는 모든 입력 데이터 중 선두의 입력 데이터의 입력 스트림에서의 위치 정보를 구하여 처리를 재개한다.

Description

신호 처리 장치 및 반도체 장치{SIGNAL PROCESSING DEVICE AND SEMICONDUCTOR DEVICE}
본 발명은, 복수의 신호 처리 태스크를 실행하는 장치 및 LSI와 관련되며, 특히, 우선 처리에의 태스크 전환에 따른 오버헤드를 억제하기 위해서 유효한 기술에 관한 것이다.
휴대 전화, 디지털 카메라, 카 내비게이션 시스템 등, 화상을 취급하는 디지털 기기에 있어서, 화상의 해상도가 대형화하고, 기능이 고도화, 복잡화하는 경향에 있기 때문에, 화상 등의 스트림 데이터를 대상으로 한 신호 처리를 행하는 LSI 등에는, 복수의 화상 처리 태스크를 실행하는 것이 요구되고 있다. 그 때, 신호 처리 장치에서는, 우선 처리 요구에 따른 태스크 전환이 발생하지만, 그 때의 오버헤드를 낮게 억제하는 것이 요구된다. 우선 처리 요구에 따른 태스크 전환(task switching)이란, 어느 태스크의 실행 중에 다른 태스크를 우선 처리하는 요구를 받아들여, 실행 중의 태스크를 중단하여 우선해야 할 태스크를 실행하고, 우선 처리의 완료를 기다려 원래의 태스크로 복귀하는 것을 말한다. 태스크 전환을 위해서, 일반적으로는, 콘텍스트 스위칭(context switching)으로 불리는 수법이 이용된다. 콘텍스트 스위칭은, 태스크 전환 시에 실행 중의 태스크의 도중 경과 정보인 레지스터의 값이나 상태를 저장(saving)하고, 태스크를 바꾸어 우선 처리를 실행하며, 우선 처리가 완료하면, 저장한 정보를 복원하여 원래의 태스크를 재개한다는 수법이다. 화상 등의 스트림 데이터를 대상으로 한 신호 처리의 태스크는, 일반의 소프트웨어와 비교하여, 취급하는 정보량이 방대하기 때문에, 실행 중의 태스크의 도중 경과를 메모리 등에 저장하려고 했을 경우, 저장과 복귀에 필요로 하는 시간이 방대하게 되어, 오버헤드가 커진다고 하는 문제가 있다.
특히, 화상 처리는 프레임 단위의 처리를 행하는 것이 많고, 1개의 프레임의 화상 처리가 완료할 때마다 인터럽트(interrupt) 등 통지를 행하는 구조를 가지며, 이것들을 트리거(trigger)로 하여 시스템으로서 각종 처리를 행해 간다. 처리하는 화상의 고해상화(화상 사이즈의 대형화), 화상 처리의 복잡화에 의해 1 프레임의 처리에 걸리는 시간·데이터량이 더 증대하고 있다. 그 때문에, 실행 중의 화상 처리 태스크의 도중 경과를 메모리 등에 저장하려고 했을 경우, 저장과 복귀에 필요로 하는 시간은 보다 방대하게 되어, 오버헤드가 더 커진다는 문제가 있다.
특허 문헌 1은, 제 0007 단락에서 「화상 처리는 일괄하여 처리하는 데이터가 대량(예를 들면, 1 화면 분의 화상)이기 때문에, 콘텍스트 스위칭은 할 수 없다(불가능하지 않지만 매우 효율이 나쁘다)」취지를 지적하고, 멀티태스크(multitask)의 화상 처리를 행하기 위해서, 복수의 화상 처리 장치를 설치하여 병렬 동작시키고, 콘텍스트 스위칭이 발생하지 않게 스케줄링하고 있다.
특허 문헌 2는, 촬상하여 얻은 화상 데이터에 대해서, 화상 처리부에서 압축 처리 등을 행하여 기록하는 촬상 장치에 있어서, 압축 처리의 실행 중에 표시를 우선하여 행하는 기술이 개시되고 있다. 이 장치에 대해서는, 화상 처리부는 표시에는 사용되지 않기 때문에, 표시를 우선시키고 있는 동안, 화상 처리부를 정지하게 하면, 처리 도중 상태는 유지되고, 우선 처리로부터 복귀할 때는 그대로 화상 처리부를 재개시키면 좋다. 즉, 화상 처리부에서의 콘텍스트 스위칭(context switching)은 발생하지 않는다.
[특허 문헌 1] 일본 특개 2009-86789호 공보 [특허 문헌 2] 일본 특개 2006-197548호 공보
본 발명에서 개시되는 실시 형태에 대해서는, 스트림 데이터에 대해서 멀티태스크를 행하는 신호 처리 장치에서, 우선 처리 요구에 따라 태스크 전환이 발생했을 때에, 저장해야 할 정보량을 필요 최소한으로 하여, 저장과 복귀에 필요로 하는 시간적인 오버헤드를 억제하는 것을 과제로 한다.
그 외의 과제와 신규 특징은 본 명세서의 기술 및 첨부 도면으로부터 밝혀질 것이다.
본 발명에서 개시되는 실시 형태의 개요를 간단하게 설명하면 아래와 같다.
즉, 신호 처리부의 처리 경과에 따른 스트림 데이터에서의 데이터의 위치 정보를 나타내는 포인터를 갖추고, 우선 태스크의 처리가 요구되었을 때에는, 그 포인터의 값만을 저장한다. 복귀 때에는, 저장한 포인터의 값에 근거하여, 복귀 후의 태스크에서 다음으로 출력해야 할 출력 스트림 데이터의 위치 정보를 구하고, 그 데이터를 산출하기 위해서 신호 처리부에 입력할 필요가 있는 모든 입력 데이터 중 선두의 입력 데이터의 입력 스트림에 있어서의 위치 정보를 구하여, 처리를 재개한다.
본 발명에서 개시되는 실시 형태에 의해서 얻을 수 있는 효과를 간단하게 설명하면 아래와 같다.
즉, 저장해야 할 정보량은 포인터의 값만으로 필요 최소한이며, 방대한 정보의 저장과 복귀를 행하지 않고, 저장과 복귀에 필요로 하는 시간적인 오버헤드를 억제할 수 있다.
도 1은, 실시 형태 1에 관한 신호 처리 장치의 기능 블럭도이다.
도 2는, 실시 형태 1에 관한 반도체 장치의 블럭도이다.
도 3은, 신호 처리의 태스크를 실행 중에, 추가의 신호 처리 태스크의 실행 요구를 받았을 때의 처리 플로우를 나타내는 순서도이다.
도 4는, 우선 처리를 완료한 후, 원래의 신호 처리를 재개할 때의 처리 플로우를 나타내는 순서도이다.
도 5는, 태스크 전환전의 신호 처리부의 상태를 나타내는 설명도이다.
도 6은, 태스크 전환 후, 우선 처리를 실행 중의 신호 처리부의 상태를 나타내는 설명도이다.
도 7은, 우선 처리를 완료하고 복귀한 후의, 신호 처리부의 상태를 나타내는 설명도이다.
도 8은, 실시 형태 1에 의한 태스크 전환의 효과를 나타내는 설명도이다.
도 9는, 공간 필터 처리에 대응하는 화상 위치 함수의 개념을 나타내는 설명도이다.
도 10은, 상하 반전(flip-vertical) 처리에 대응하는 화상 위치 함수의 개념을 나타내는 설명도이다.
도 11은, 블렌드(blend) 처리에 대응하는 화상 위치 함수의 개념을 나타내는 설명도이다.
도 12는, 블록 처리에서의 태스크 전환에 대한 설명도이다.
도 13은, 프레임간 처리를 행하는 신호 처리 장치의 기능 블럭도이다.
도 14는, 우선 처리중 추가의 우선 처리 요구에 의한 태스크 전환에 대한 설명도이다.   
도 15는, 콘텍스트 처리부를 갖추는 반도체 장치의 블럭도이다.
1. 실시 형태의 개요
먼저, 본 발명에서 개시되는 실시 형태에 대한 개요를 설명한다. 실시 형태에 대한 개요 설명에서 괄호를 부여하여 참조하는 도면 내의 참조 부호는 그것이 부여된 구성요소의 개념에 포함되는 것을 예시하는 것에 지나지 않는다.
〔1〕<포인터(Pointer)만을 저장하고, 복귀 후의 선두 입력 데이터의 위치를 포인터로부터 산출> 복수의 입력 데이터로 이루어진 입력 스트림(11)이 입력되고, 스트림 데이터에 소정의 태스크를 실행하여 복수의 출력 데이터로 이루어진 출력 스트림(12)을 출력하는 신호 처리부(10)를 갖추는, 신호 처리 장치로서, 이하와 같이 동작한다.
상기 입력 스트림은 입력 데이터를 상기 신호 처리부에 순차 입력하고, 상기 출력 스트림을 구성하는 출력 데이터를 상기 신호 처리부로부터 순차 출력하며, 상기 신호 처리부의 처리의 경과에 따른 상기 스트림 데이터에서의 데이터의 위치 정보를 나타내는 포인터(21)를 갖춘다.  
제1 태스크를 실행 중에 제2 태스크의 우선 처리가 요구되었을 때(81), 상기 포인터가 유지(保持)하는 값을 저장(84)한 후, 상기 제2 태스크를 실행한다(86).
상기 제2 태스크가 완료됐을 때(87), 상기 저장한 포인터의 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 상기 출력 스트림에서의 위치 정보를 구하고(90), 상기 다음으로 출력해야 할 출력 데이터를 산출하기 위해서 상기 신호 처리부에 입력할 필요가 있는 모든 입력 데이터 중 선두의 입력 데이터의 상기 입력 스트림에서의 위치 정보를 구한다(90).
이것에 의해, 저장해야 할 정보량은 포인터의 값만으로 필요 최소한이며, 방대한 정보의 저장과 복귀를 행하지 않고, 복귀 후의 신호 처리를 재개하기 위해서 필요한 입력 데이터의 위치 정보는 그 포인터값으로부터 산출하고 있을 뿐이므로, 저장과 복귀에 필요로 하는 시간적인 오버헤드를 억제할 수 있다.
〔2〕<입출력 위치 함수와 입출력 어드레스 함수>〔1〕항에 있어서, 상기 신호 처리 장치는, 상기 입력 스트림을 저장하고 상기 출력 스트림을 기록(write)하는 메모리(40)와, 태스크 전환 제어부(50)를 갖추고, 이하와 같이 동작한다.
상기 신호 처리부는, 입력 어드레스 레지스터(input address register; 23)와 출력 어드레스 레지스터(output address register; 22)를 갖추고, 상기 입력 어드레스 레지스터는, 상기 신호 처리부가 판독(read)하는 상기 입력 데이터의 상기 메모리 상의 어드레스를 유지하고, 상기 출력 어드레스 레지스터는, 상기 신호 처리부가 기록하는 상기 출력 데이터의 상기 메모리 상의 어드레스를 유지한다.
상기 태스크 전환 제어부는, 상기 제2 태스크가 완료됐을 때, 출력 위치 함수에 의해, 상기 저장한 포인터의 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 출력 스트림에서의 위치 정보를 산출하고, 출력 어드레스 함수(52)에 의해, 상기 출력 위치 함수의 출력에 근거하여, 상기 다음으로 출력해야 할 출력 데이터의 상기 메모리에서의 어드레스를 산출하여, 상기 출력 어드레스 레지스터에 기록한다.
상기 태스크 전환 제어부는, 상기 제2 태스크가 완료됐을 때, 입력 위치 함수에 의해, 상기 저장한 포인터의 값에 근거하여, 상기 선두의 입력 데이터의 입력 스트림에서의 위치 정보를 산출하고, 입력 어드레스 함수에 의해, 상기 선두의 입력 데이터의 상기 메모리에서의 어드레스를 산출하여, 상기 입력 어드레스 레지스터에 기록한다.
이것에 의해, 태스크 전환 제어부에 있어서의 어드레스의 산출이 간략화된다.
〔3〕<포인터는 출력 완료 라인 번호 등을 유지>〔2〕항에 있어서, 상기 스트림 데이터가 화상 데이터이며, 상기 포인터는, 상기 신호 처리부가 출력을 완료한 출력 데이터의 상기 출력 스트림에서의 화소 번호, 라인 번호, 블록 번호, 혹은 프레임 번호, 또는 그 조합을 유지한다.
상기 출력 위치 함수는, 상기 저장한 포인터의 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 화소 번호, 라인 번호, 블록 번호, 혹은 프레임 번호, 또는 그 조합을 산출한다.
상기 입력 위치 함수에 의해, 상기 저장한 포인터의 값에 근거하여, 상기 선두의 입력 데이터의 상기 입력 스트림에서의 화소 번호, 라인 번호, 블록 번호, 혹은 프레임 번호, 또는 그 조합을 산출한다.
이것에 의해, 출력 위치 함수는, 저장한 포인터값에 1을 가산하여 출력하면 좋고, 간략화된다.
〔4〕<포인터는 출력 완료 라인 번호 등을 유지>〔2〕항에 있어서, 상기 스트림 데이터가 화상 데이터이며, 상기 포인터는, 상기 신호 처리부가 입력을 완료한 입력 데이터의 상기 입력 스트림에서의 화소 번호, 라인 번호, 블록 번호, 혹은 프레임 번호, 또는 그 조합을 유지한다.
상기 출력 위치 함수는, 상기 저장한 포인터의 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 화소 번호, 라인 번호, 블록 번호, 혹은 프레임 번호, 또는 그 조합을 산출한다.
상기 입력 위치 함수에 의해, 상기 저장한 포인터의 값에 근거하여, 상기 선두의 입력 데이터의 상기 입력 스트림에서의 화소 번호, 라인 번호, 블록 번호, 혹은 프레임 번호, 또는 그 조합을 산출한다.
이것에 의해, 입력 위치 함수는, 저장한 포인터값에 1을 가산하여 출력하면 좋고, 간략화된다.
〔5〕<위치 함수를 부분 위치 함수의 네스팅(nesting)에 의해 구성>〔2〕항, 〔3〕항, 또는〔4〕항에 있어서, 상기 제1 태스크가, 상기 신호 처리부에 의해서, 상기 입력 스트림에 신호 처리를 실시하여 얻은 출력 스트림을 순차적으로 다음의 신호 처리의 입력 스트림으로 하는 복수의 신호 처리를 포함한 신호 처리 태스크로서, 이하와 같이 동작한다.
상기 복수의 신호 처리의 각각에 대해서, 다음으로 출력해야 할 출력 데이터를 산출하기 위해서 상기 신호 처리부에 입력할 필요가 있는 모든 입력 데이터 중 선두의 입력 데이터의 위치 정보를 출력하는 부분 위치 함수를 갖춘다. 상기 복수의 신호 처리 중 상기 제1 태스크에서 최후에 실행되는 신호 처리에 대응하는 부분 위치 함수에 상기 저장한 포인터의 값을 입력하고, 상기 복수의 신호 처리 중 상기 제1 태스크에서 후(後)에 실행되는 신호 처리에 대응하는 부분 위치 함수의 출력을, 그 직전에 실행되는 신호 처리에 대응하는 부분 위치 함수에 입력하는 것에 의해, 순차 네스팅(nesting)하여, 상기 입력 위치 함수를 구성한다.
이것에 의해, 신호 처리가 복수의 신호 처리의 조합인 경우여도, 입력 위치 함수와 출력 위치 함수를 적절히 구성할 수 있다.
〔6〕<공간 필터(FIR 필터)>〔5〕항에 있어서, 상기 스트림 데이터는 화상 데이터이며, 상기 신호 처리부에 의해서 실시되는 신호 처리의 하나가 n×n(n는 3이상의 홀수)의 공간 필터이며, 상기 공간 필터 처리에 대응하는 부분 위치 함수가, 출력을 완료한 라인 번호를 입력하고, 상기 저장시킨 포인터의 값의 (n-1)/2 라인전의 라인 번호를 출력하며, 상기 입력 위치 함수가 상기 공간 필터 처리에 대응하는 상기 부분 위치 함수를 포함한다.
이것에 의해, 신호 처리가 화상의 공간 필터를 포함한 실시 형태를 제공할 수 있다.
〔7〕<상하 반전 처리>〔5〕항에 있어서, 상기 스트림 데이터가 화상 데이터이며, 상기 신호 처리부에 의해서 실시되는 신호 처리의 하나가, 선두로부터 제V-n+1 라인의 입력 스트림을 판독하여 선두로부터 제n 라인에 출력하는 수직 방향의 사이즈가 V의 화상의 상하 반전 처리이며, 상기 포인터는, 상기 상하 반전 처리의 출력을 완료한 라인 번호 p를 유지하고, 상기 상하 반전 처리에 대응하는 부분 위치 함수는, 제V-p라인을 출력한다.  
이것에 의해, 신호 처리가 화상의 상하 반전 처리를 포함한 실시 형태를 제공할 수 있다.  
〔8〕<다중의 우선 처리에 있어서의 태스크 전환>〔1〕항 내지〔7〕항 중 어느 한 항에 있어서, 이하와 같이 동작한다.
제1 태스크를 실행 중에 제2 태스크의 우선 처리가 요구되었을 때, 상기 포인터가 유지하는 제1 값을 저장한 후, 상기 제2 태스크를 실행하고, 또한, 상기 제2 태스크를 실행 중에 제3 태스크의 우선 처리가 요구되었을 때, 상기 포인터가 유지하는 제2 값을 저장한 후, 상기 제3 태스크를 실행한다.
상기 제3 태스크가 완료됐을 때, 상기 저장한 포인터의 제2 값에 근거하여, 상기 제2 태스크에서 다음으로 출력해야 할 출력 데이터의 위치 정보를 구하여 상기 제2 태스크를 재개하고, 또한 상기 제2 태스크가 완료됐을 때, 상기 저장한 포인터의 제1 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 위치 정보를 구하여 상기 제1 태스크를 재개한다.
이것에 의해, 다중의 우선 처리에 있어서의 태스크 전환이 가능해진다.
〔9〕<반도체 장치> CPU(45)와 메모리(40)와 신호 처리부(10)가 각각 버스(55)에 접속된 반도체 장치로서, 이하와 같이 구성된다.
상기 신호 처리부는, 신호 처리 모듈(30)과 신호 처리 제어부(20)를 갖춘다.
상기 신호 처리 모듈은, 입력된 복수의 입력 데이터로 이루어진 입력 스트림(11)을 입력하고, 스트림 데이터에 소정의 신호 처리를 실시하여 복수의 출력 데이터로 이루어진 출력 스트림(12)을 출력한다.
상기 신호 처리 제어부는, 상기 신호 처리 모듈의 처리 경과에 따른 처리 대상 데이터의 스트림 데이터에서의 위치 정보를 가리키는 포인터(Pointer, 21)를 갖추고, 상기 메모리로부터 판독 어드레스(read address)를 지정하여 상기 입력 데이터를 판독하여 상기 신호 처리 모듈에 입력하고, 기록 어드레스(write address)를 지정하여 상기 신호 처리 모듈의 상기 출력 데이터를 상기 메모리에 출력한다.
상기 CPU는, 제1 태스크를 실행 중에 제2 태스크의 우선 처리가 요구되었을 때, 상기 포인터가 유지하는 값을 저장시킨 후, 상기 신호 처리부에 상기 제2 태스크를 실행시킨다. 상기 제2 태스크가 완료됐을 때, 상기 저장시킨 포인터의 값을 복귀시키고, 상기 복귀한 포인터의 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터를 저장해야 할 상기 메모리 상의 어드레스를 구하여 상기 기록 어드레스를 설정한다. 또한, 상기 다음으로 출력해야 할 출력 데이터를 산출하기 위해서 상기 신호 처리부에 입력할 필요가 있는 모든 입력 데이터 중 선두의 입력 데이터가 저장되어 있는 어드레스를 구하여 상기 판독 어드레스를 설정한다.
이것에 의해, 저장과 복귀에 필요로 하는 시간적인 오버헤드를 억제한, 반도체 장치를 제공할 수 있다.
〔10〕<CPU가 태스크 전환을 제어>〔9〕항에 있어서, 상기 신호 처리 제어부는, 상기 판독 어드레스를 유지하는 판독 어드레스 레지스터(read address register; 23)와, 상기 기록 어드레스를 유지하는 기록 어드레스 레지스터(write address register; 22)와, 상기 포인터의 값을 유지하는 포인터 레지스터(21)를 갖춘다.
상기 CPU는, 상기 우선 처리가 요구되었을 때, 상기 포인터 레지스터의 제1 값을 상기 메모리에 저장한다.
상기 제2 태스크가 완료됐을 때, 상기 제1 값을 상기 메모리로부터 상기 포인터 레지스터에 복귀(復歸)한다. 또한, 출력 위치 함수에 의해, 상기 제1 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 상기 출력 스트림에서의 위치 정보를 산출하고, 출력 어드레스 함수에 의해, 상기 출력 위치 함수의 출력에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 상기 메모리에서의 어드레스를 산출하여, 상기 기록 어드레스 레지스터에 기록한다. 또한, 입력 위치 함수에 의해, 상기 제1 값에 근거하여 상기 선두의 입력 데이터의 상기 입력 스트림에서의 위치 정보를 산출하고, 입력 어드레스 함수에 의해, 상기 선두의 입력 데이터의 상기 메모리에서의 어드레스를 산출하여, 상기 판독 어드레스 레지스터에 기록한다.
이것에 의해, 태스크 전환 제어부에서의 어드레스의 산출이 간략화된다.
〔11〕<신호 처리 파라미터 레지스터>〔9〕항 또는〔10〕항에 있어서, 상기 신호 처리 제어부는, 파라미터 레지스터(24)를 더 갖추고, 상기 신호 처리 모듈은, 상기 파라미터 레지스터가 유지하는 파라미터에 따라서 신호 처리를 실행한다. 상기 CPU는, 상기 우선 처리가 요구되었을 때, 상기 파라미터 레지스터가 유지하는 값을 저장하지 않고 파기(破棄)하며, 상기 신호 처리 모듈에 상기 제2 태스크를 실행시키기 위한 파라미터를, 상기 파라미터 레지스터에 기록한다.
이것에 의해, 신호 처리 파라미터를 저장하지 않기 때문에, 저장과 복귀에 필요로 하는 시간적인 오버헤드(overhead)를 억제할 수 있다.
〔12〕<신호 처리 파라미터를 메모리로부터 전송>〔11〕항에 있어서, 상기 파라미터는, 상기 신호 처리 모듈이 실행하는 처리의 처리 내용마다 상기 메모리에 저장되어 있고, 상기 CPU는, 처리 태스크가 요구되었을 때, 상기 처리 태스크의 처리 내용에 대응하는 상기 파라미터를 상기 메모리로부터 판독(read)하여 상기 파라미터 레지스터에 기록한다.
이것에 의해, 신호 처리 파라미터의 관리가 간략화된다.
〔13〕<콘텍스트 처리부> CPU(45)와 메모리(40)와 신호 처리부(10)와 콘텍스트 처리부(70)가 각각 버스(55)에 접속된 반도체 장치로서, 이하와 같이 구성된다.
상기 신호 처리부는, 신호 처리 모듈(30)과 신호 처리 제어부(20)를 갖춘다.
상기 신호 처리 모듈은, 입력된 복수의 입력 데이터로 이루어진 입력 스트림(11)을 입력하고, 스트림 데이터에 소정의 신호 처리를 실시하여 복수의 출력 데이터로 이루어진 출력 스트림(12)을 출력한다.
상기 신호 처리 제어부는, 상기 신호 처리 모듈의 처리 경과에 따른 처리 대상 데이터의 스트림 데이터에서의 위치 정보를 가리키는 포인터(21)를 갖추고, 상기 메모리로부터 판독 어드레스(23)를 지정하여 상기 입력 데이터를 판독하여 상기 신호 처리 모듈에 입력하고, 기록 어드레스(22)를 지정하여 상기 신호 처리 모듈의 상기 출력 데이터를 상기 메모리에 출력한다.
상기 콘텍스트 처리부는, 콘텍스트 위치 기억부(72)와 복원부(73)를 갖춘다.
상기 콘텍스트 처리부는, 제1 태스크를 실행 중에 제2 태스크의 우선 처리가 요구되었을 때, 상기 포인터가 유지하는 값을 상기 콘텍스트 위치 기억부에 저장시킨 후, 상기 신호 처리부에 상기 제2 태스크를 실행시키며, 상기 제2 태스크가 완료됐을 때, 상기 저장시킨 포인터의 값을 복귀시킨다.
상기 복원부는, 상기 복귀한 포인터의 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터를 저장해야 할 상기 메모리 상의 어드레스를 구하여 상기 기록 어드레스를 설정하고, 상기 다음으로 출력해야 할 출력 데이터를 산출하기 위해서 상기 신호 처리부에 입력할 필요가 있는 모든 입력 데이터 중 선두의 입력 데이터가 저장되어 있는 어드레스를 구하여 상기 판독 어드레스를 설정한다.
이것에 의해, 저장과 복귀에 필요로 하는 시간적인 오버헤드를 억제하고, 또한, CPU에 부하를 거는 일 없이, 태스크 전환을 실행할 수 있다.
〔14〕<콘텍스트 스위칭부에 의한 태스크 전환 제어>〔13〕항에 있어서, 상기 신호 처리 제어부는, 상기 판독 어드레스를 유지하는 판독 어드레스 레지스터(23)와, 상기 기록 어드레스를 유지하는 기록 어드레스 레지스터(22)와, 상기 포인터의 값을 유지하는 포인터 레지스터(21)를 갖추고, 이하와 같이 동작한다.
상기 우선 처리가 요구되었을 때, 상기 콘텍스트 처리부는, 상기 우선 처리가 요구되었을 때, 상기 포인터 레지스터의 제1 값을 상기 콘텍스트 기억부에 저장한다.
상기 제2 태스크가 완료됐을 때, 상기 콘텍스트 처리부는, 상기 제1 값을 상기 콘텍스트 기억부로부터 상기 포인터 레지스터에 복귀한다. 또한 상기 복원부는, 출력 위치 함수에 의해, 상기 제1 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 상기 출력 스트림에서의 위치 정보를 산출하고, 출력 어드레스 함수에 의해, 상기 출력 위치 함수의 출력에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 상기 메모리에서의 어드레스를 산출하여, 상기 기록 어드레스 레지스터에 기록한다. 또한, 입력 위치 함수에 의해, 상기 제1 값에 근거하여 상기 선두의 입력 데이터의 상기 입력 스트림에서의 위치 정보를 산출하고, 입력 어드레스 함수에 의해, 상기 선두의 입력 데이터의 상기 메모리에서의 어드레스를 산출하여, 상기 판독 어드레스 레지스터에 기록한다.
이것에 의해, 태스크 전환 제어부에서의 어드레스의 산출이 간략화된다.
〔15〕<신호 처리 파라미터 레지스터>〔13〕항 또는〔14〕항에 있어서, 상기 신호 처리 제어부는, 파라미터 레지스터(24)를 더 갖추고, 상기 신호 처리 모듈은, 상기 파라미터 레지스터가 유지하는 처리 파라미터에 따라서 신호 처리를 실행한다.
상기 복원부는, 상기 우선 처리가 요구되었을 때, 상기 파라미터 레지스터가 유지하는 값을 저장하지 않고 파기하며, 상기 신호 처리 모듈에 상기 제2 태스크를 실행시키기 위한 처리 파라미터를, 상기 파라미터 레지스터에 기록한다.
이것에 의해, 신호 처리 파라미터를 저장하지 않기 때문에, 저장과 복귀에 필요로 하는 시간적인 오버헤드를 억제할 수 있다.
〔16〕<신호 처리 파라미터를 콘텍스트 처리부가 메모리로부터 전송>〔15〕항에 있어서, 상기 처리 파라미터는, 상기 신호 처리 모듈이 실행하는 처리의 내용마다 상기 메모리에 저장되어 있고, 상기 복원부는, 태스크가 요구되었을 때, 상기 태스크의 처리 내용에 대응하는 상기 처리 파라미터를 상기 메모리로부터 상기 파라미터 레지스터에 전송한다.
이것에 의해, 신호 처리 파라미터의 관리가 간략화된다.
〔17〕<콘텍스트 번호와 포인터의 연관성(association)>〔13〕항 내지〔16〕항 중 한 항에 있어서, 이하와 같이 동작한다.
상기 콘텍스트 처리부는, 제1 태스크를 실행 중에 제2 태스크의 우선 처리가 요구되었을 때, 상기 제1 태스크의 콘텍스트 번호와 상기 포인터가 유지하는 값을 대응지어 상기 콘텍스트 위치 기억부에 저장시킨다. 상기 제2 태스크가 완료됐을 때, 상기 복원부는, 저장한 상기 콘텍스트 번호와 복귀한 상기 포인터의 값에 근거하여, 상기 기록 어드레스와 상기 판독 어드레스를 설정한다.
이것에 의해, 복귀 처리가 간략화된다.
〔18〕<신호 처리 파라미터를 복귀>〔17〕항에 있어서, 상기 처리 파라미터는, 상기 신호 처리 모듈이 실행하는 처리의 내용마다 상기 메모리에 저장되어 있고, 상기 복원부는, 상기 우선 처리가 완료됐을 때, 상기 저장한 콘텍스트 번호에 근거하여, 상기 제1 태스크의 처리 내용에 대응하는 상기 처리 파라미터를 상기 메모리로부터 상기 파라미터 레지스터에 전송한다.
이것에 의해, 신호 처리 파라미터의 관리가 간략화된다.
〔19〕<다중 우선 처리>〔18〕항에 있어서, 이하와 같이 동작한다.
제1 태스크를 실행 중에 제2 태스크의 우선 처리가 요구되었을 때, 상기 콘텍스트 처리부는, 상기 제1 태스크의 콘텍스트 번호와 상기 포인터가 유지하는 제1 태스크의 포인터값을 대응지어 상기 콘텍스트 위치 기억부에 저장시킨다.
상기 제2 태스크를 실행 중에 제3 태스크의 우선 처리가 요구되었을 때, 상기 콘텍스트 처리부는, 상기 제2 태스크의 콘텍스트 번호와 상기 포인터가 유지하는 제2 태스크의 포인터값을 대응지어 상기 콘텍스트 위치 기억부에 저장시킨다.
상기 제3 태스크가 완료됐을 때, 상기 복원부는, 상기 제2 태스크의 콘텍스트 번호에 근거하여 상기 제2 태스크의 처리 파라미터를 복귀하고, 상기 제2 태스크의 포인터의 값을 복원하며, 또한, 상기 제2 태스크가 완료됐을 때, 상기 복원부는, 상기 제1 태스크의 콘텍스트 번호에 근거하여 상기 제1 태스크의 처리 파라미터를 복귀하고, 상기 제1 태스크의 포인터의 값을 복원한다.
이것에 의해, 다중의 우선 처리가 가능해진다.
2. 실시 형태의 상세
실시 형태에 대해 더욱 상술한다.
〔실시 형태 1〕실시 형태 1에 관한 신호 처리 장치의 구성에 대해 설명한다. 도 1은, 실시 형태 1에 관한 신호 처리 장치의 기능 블럭도이다.
실시 형태 1에 관한 신호 처리 장치는, 복수의 입력 데이터로 이루어진 입력 스트림(11)이 입력되고, 스트림 데이터에 소정의 태스크를 실행하여 복수의 출력 데이터로 이루어진 출력 스트림(12)을 출력하는 신호 처리부(10)를 갖추며, 이하와 같이 동작한다.
입력 스트림(11)을 구성하는 입력 데이터는 신호 처리부(10)에 순차 입력되고, 출력 스트림(12)을 구성하는 출력 데이터는 신호 처리부(10)로부터 순차 출력된다. 신호 처리부(10)는, 신호 처리의 경과에 따른 스트림 데이터에서의 데이터의 위치 정보를 나타내는 포인터(21)를 갖춘다.
신호 처리 장치는, 제1 태스크를 실행 중에 제2 태스크의 우선 처리가 요구되었을 때, 포인터(21)가 유지하는 값을 저장한 후, 제2 태스크를 실행한다. 제2 태스크가 완료됐을 때, 저장한 포인터의 값에 근거하여, 제1 태스크에서 다음으로 출력해야 할 출력 데이터의, 출력 스트림(12)에서의 위치 정보를 구하고, 그 출력 데이터를 산출하기 위해서 신호 처리부(10)에 입력할 필요가 있는 모든 입력 데이터 중 선두의 입력 데이터의, 입력 스트림(11)에서의 위치 정보를 구한다.
입력 데이터 및 출력 데이터의 위치 정보는, 각각, 저장한 포인터의 값 p를 입력으로 하는 함수(51, 52)에 의해서 산출할 수 있다.
도 1에 있어서 파선으로 둘러싼 부분이, 본 실시 형태 1의 본질(本質) 부분이다.
이러한 신호 처리 장치는, 예를 들면, 도 1에 나타내는 바와 같이, 입력 스트림(11)을 저장하고 있고 출력 스트림(12)을 기록하는 메모리(40)와, 태스크 전환 제어부(50)를 갖추고, 신호 처리부(10)에 있어서, 제어부(20)에, 입력 어드레스 레지스터(23)와 출력 어드레스 레지스터(22)를 갖추어 구성할 수 있다. 입력 어드레스 레지스터(23)는, 신호 처리부(10)가 판독(read)하는 입력 데이터의 메모리(40)상의 어드레스를 유지하고, 출력 어드레스 레지스터(22)는, 신호 처리부가 기록(write)하는 출력 데이터의 메모리(40)상의 어드레스를 유지하고 있다. 신호 처리부(10)에는, 신호 처리 모듈(30)을 더 갖출 수 있다. 신호 처리 모듈(30)은, 신호 처리부(10)가 입력 어드레스 레지스터(23)에 의해서 지정하는 입력 데이터 스트림(11)을 입력으로 하여, 설정된 신호 처리를 실행하고, 출력 어드레스 레지스터에 의해서 지정되는 어드레스에 출력 데이터 스트림(12)을 기록한다.
우선 처리를 끝내고 원래의 처리를 재개할 때에, 저장한 포인터의 값을 입력으로 하고, 입력 데이터 및 출력 데이터의 위치 정보를 구하는 함수(51, 52)의 연산은, 태스크 전환 제어부(50)의 기능으로서 실현할 수 있다.
이러한 신호 처리 장치는, 예를 들면 도 2 또는 도 15에 나타내는, 반도체 장치에 의해서 실시할 수 있다. 이 반도체 장치에 의한 실시 형태에 대해서는 후술한다.
실시 형태 1에 관한 신호 처리 장치의 동작에 대해 설명한다.
도 3은, 신호 처리의 태스크를 실행 중에, 추가의 신호 처리 태스크의 실행 요구를 받았을 때의 처리 플로우를 나타내는 순서도이며, 도 4는, 우선 처리를 완료한 후, 원래의 신호 처리를 재개할 때의 처리 플로우를 나타내는 순서도이다. 신호 처리 태스크가 화상 처리인 경우에 대한 예이지만, 입력 데이터가 시계열 데이터 등으로 순차 입력되고, 정형(定形)의 처리를 실시하여 입력 데이터와 같은 시계열 데이터를 순차 출력하는 신호 처리를 일반적으로, 적용할 수 있다. 이러한 정형의 처리에서는, 출력해야 할 데이터의 위치가 주어지면, 그 데이터의 산출에 필요한 입력 데이터가 한가지(一意)로 정해지고, 그 데이터를 출력하기 위해서, 어느 입력 데이터로부터 입력을 재개하면 좋은지, 함수 등에 의해서 도출할 수 있기 때문이다.
화상 처리 태스크(제2 태스크)의 우선 처리가 요구되었을 때(스텝 81), 이미 다른 화상 처리 태스크(제1 태스크)를 실행 중인지 여부를 판정한다(스텝 82). 제1 태스크가 실행 중에 제2 태스크의 우선 처리가 요구되었을 때는, 어느 태스크의 우선도가 높은가를 판정한다(스텝 83). 제2 태스크의 우선도가 높은 경우에는, 제1 태스크의 화상 처리를 중단하고, 포인터(21)의 값을 저장한다(스텝 84). 그 후, 제2 태스크의 화상 처리를 실행하기 위한 파라미터를 설정하여(스텝 85), 처리를 개시한다(스텝 86).
한편, 제2 태스크의 우선도가 낮은 경우에는, 제1 태스크가 종료할 때까지 스텝 82에서 기다리고, 제1 태스크의 종료후에 제2 태스크의 화상 처리를 실행하기 위한 파라미터를 설정하여(스텝 85), 제2 태스크의 처리를 개시한다(스텝 86).
제2 태스크의 화상 처리를 완료했을 때(스텝 87), 중단한 화상 처리 태스크의 요구가 있는지 여부를 판정한다(스텝 88). 중단한 화상 처리 태스크의 요구가 없는 경우에는 화상 처리를 종료한다(스텝 92). 한편, 중단한 화상 처리 태스크의 요구가 있는 경우에는, 중단한 태스크를 실행하기 위한 파라미터를 재설정한다(스텝 89). 또한, 스텝 84에서 저장한 포인터의 값을 판독하고, 그 값에 근거하여, 중단한 태스크를 재개하는 입력 어드레스와 출력 어드레스를 구한다(스텝 90). 출력 어드레스는, 저장한 포인터의 값에 근거하여 도출할 수 있다. 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 출력 스트림(12)에서의 위치 정보를, 저장한 포인터의 값에 근거하여 구하고, 그 데이터가 저장되어 있는 메모리 상의 어드레스로 환산하는 것에 의해서 도출할 수 있다. 입력 어드레스는, 그 출력 데이터를 산출하기 위해서 신호 처리부(10)에 입력할 필요가 있는 모든 입력 데이터 중 선두의 입력 데이터의 어드레스로서, 저장한 포인터의 값에 근거하여 도출할 수 있다.
그 후, 중단한 제1 화상 처리 태스크를 재개한다(스텝 91).
이것에 의해, 저장해야 할 정보량은 포인터의 값만으로 필요 최소한이며, 방대한 정보의 저장과 복귀를 행하지 않고, 복귀 후의 신호 처리를 재개하기 위해서 필요한 입력 데이터의 위치 정보는 그 포인터값으로부터 산출하고 있을 뿐이므로, 저장과 복귀에 필요로 하는 시간적인 오버헤드를 억제할 수 있다.
도 5 ~ 도 7을 이용하여, 실시 형태 1에 관한 신호 처리 장치의 동작을 더 상세하게 설명한다.  
도 5는 태스크 전환 전, 도 6은 태스크 전환 후 우선 처리를 실행 중, 도 7은 우선 처리를 완료하고 복귀한 후의, 신호 처리부의 상태를, 각각 나타내는 설명도이다.
도 5 ~ 도 7은, 신호 처리부(10)가 특히 화상 처리를 행하는 화상 처리부(10)로서, 화상 처리를 실행하는 화상 처리 모듈(30)과, 그 화상 처리의 내용을 나타내는 파라미터를 유지하는 파라미터 레지스터(24)를 제어부(20) 내에 설치하고, 태스크 전환 제어부(50)에, 판독 어드레스의 산출을 행하는 판독 어드레스 함수(51)와 기록 어드레스의 산출을 행하는 기록 어드레스 함수(52)를 갖춘 예이다.
화상 처리 X의 실행 중에, 화상 처리 Y를 우선 처리하기 위해서, 태스크 전환이 발생한 예에 대해 설명한다. 입력 데이터(41)는 메모리(40)의 어드레스 A를 선두로서 저장되어 있고, 출력 데이터(42)는 어드레스 A'를 선두로서 기록된다. 메모리(40) 상에는, 어드레스 B를 선두로서 화상 처리 Y의 입력 데이터(43)가 저장되어 있고, 어드레스 B'를 선두로서 화상 처리 Y의 출력 데이터(44)를 저장하기 위한 메모리 영역이 확보되어 있다. 화상 처리의 진척(進陟)에 맞추어, 판독(입력) 어드레스 레지스터(23)의 값과, 기록(출력) 어드레스 레지스터(22)의 값을, 각각 변화시킨다. 포인터 레지스터(21)는, 화상 처리의 진척을 나타내는 포인터값을 저장하고 있다. 포인터값으로서는, 화상 처리를 끝내고 출력을 완료한 라인의 라인 번호, 블록 번호, 프레임 번호 등을 사용할 수 있다. 라인 마다의 처리 경우는 포인터로서 라인 번호가 적합하고, 블록 처리의 경우는 블록 번호가 적합하다.
도 5는, 화상 처리 Y의 우선 처리 요구를 받은 시점의 상태를 나타낸다. 화상 처리 X를 위한 파라미터 X가 파라미터 레지스터(24)에 저장되고, 포인터 레지스터(21)는 화상 처리 X가 제p 라인까지 출력이 완료한 것을 나타내고 있으며, 판독 어드레스 레지스터(23)의 값은 그 시점에서의 입력 데이터의 어드레스 a, 기록 어드레스 레지스터(22)의 값은 그 시점에서의 출력 데이터의 어드레스 a'로 되어 있다.
우선 처리 요구를 받으면, 도 3 스텝 81 ~ 83에 대해 설명했던 대로, 실행 중의 태스크인 화상 처리 X와 요구된 화상 처리 Y의 우선도의 비교를 행한다. 우선도가 높은 태스크로부터의 요구인 것으로 판단하면, 태스크 전환 제어부는, 화상 처리 X를 중단하고, 포인터 레지스터(21)의 값 p를 저장한다(도 3의 스텝 84). 이 때, 저장하는 것은 포인터값 p만으로, 판독 어드레스 레지스터(23)의 값 a, 기록 어드레스 레지스터(22)의 값 a', 및 파라미터 레지스터(24)의 값 파라미터 X는, 모두 파기한다. 이러한 값을 시작으로, 화상 처리 모듈(30)의 내부의 정보도 더 포함하여, 화상 처리 X의 도중 경과를 유지하기 위한 다양한 값을 일절 저장하지 않고, 저장하는 정보를 포인터 p의 값만으로 한다. 이것에 의해, 중단 처리가 극히 단(短)시간이 된다.
다음으로 도 6에 나타내는 바와 같이, 화상 처리 Y 를 위해, 파라미터 레지스터(24)에 파라미터 Y를, 판독 어드레스 레지스터(23)에 입력 데이터(43)의 선두의 데이터가 저장되어 있는 어드레스 B를, 기록 어드레스 레지스터(22)에 출력 데이터의 선두의 데이터를 저장해야 할 어드레스 B'를, 각각 설정하고, 포인터 레지스터(21)는, 0으로 초기화한다. 화상 처리의 내용에 따라서는, 데이터의 저장 순서, 처리 순서가, 저장되어 있는 순서와 다른 경우가 있다. 그 경우는, 최초로 입력 혹은 출력해야 할 데이터의 어드레스를, 판독 및 기록 어드레스 레지스터(23, 22)에 설정하면 좋고, 포인터도 0부터 시작하여 순차 증가시키는 것 외에, 말미부터 시작하여 순차 감소시키는 등, 처리 내용에 따라 적당히 설정하면 좋다.
판독 어드레스 레지스터(23)에 의해 어드레스 b를 지정하여 메모리(40)로부터 화상 처리 모듈(30)에 입력 데이터(43)을 순차적으로 읽어들여 처리하고, 기록 어드레스 레지스터(24)에 어드레스 b'를 지정하여 처리 결과를 출력한다. 포인터 레지스터(21)는, 그동안, 화상 처리 Y의 진척을 나타내는 포인터값을 저장하고 있다.
화상 처리 Y의 태스크를 완료하면, 도 7에 나타내는 바와 같이, 중단한 화상 처리 X에의 복귀 처리를 행한다. 포인터값 p를 포인터 레지스터(21)에 복귀한다. 기록 어드레스 레지스터(22)에는, 화상 처리 X의 재개 후 최초로 출력해야 할 데이터의 어드레스를 설정하고, 판독 어드레스 레지스터(23)에는, 화상 처리 X의 재개 후 최초로 입력해야 할 데이터의 어드레스를 설정한다. 이 어드레스는, 태스크 전환부에 있어서의 판독 어드레스 함수(51) 및 기록 어드레스 함수(52)에 포인터 위치 p를 입력하는 것에 의해 산출한다.
이 예에서는, 포인터값 p가 중단 전에 출력을 완료한 라인수이므로, 기록 어드레스는 선두의 출력 데이터의 어드레스 A'에 포인터값 p의 라인수에 상당하는 출력 데이터를 저장한 어드레스를 더하여, 재개 후 최초로 출력하는 데이터를 저장해야 할 어드레스를 구한다. 기록 어드레스 함수(52)는, 기록 어드레스 G(p)=G(Pl'(p))이다. 또한, 판독 어드레스 함수(51)를 이용하여, 판독 어드레스=F(p)=F(Pl(p))를 산출하고 판독 어드레스 레지스터(23)에 설정한다. 여기서, Pl'(p)는 포인터값으로부터 화상 처리 X의 재개 후 최초로 출력해야 할 데이터의 라인 번호를 산출하는 기록 화상 위치 함수이며, Pl(p)는 포인터값으로부터 화상 처리 X의 재개 후 최초로 입력해야 할 데이터의 라인 번호를 산출하는 판독 화상 위치 함수이다. 기록 어드레스는 선두 어드레스 A'와 1 라인 당 어드레스 수로부터 산출할 수 있고, 판독 어드레스는 선두 어드레스 A와 1 라인 당 어드레스 수로부터 산출할 수 있다. 1 라인 당 어드레스 수는, 메모리 상의 스트라이드 사이즈(stride size)를 가리킨다. 화상의 1 프레임 당 데이터수와는 반드시 일치하지 않는다. 화상 데이터를 메모리 상에 할당할 때, 인접하는 화소의 데이터를 저장하는 어드레스 값의 산출을 용이하게 하기 위해, 화상의 1 라인의 데이터 수보다 크고, 어드레스의 구분이 좋은 값으로 스트라이드 사이즈를 정하는 것이 많다. 이 때, 어느 화소에 저장되어 있는 어드레스와 상하로 인접하는 화소의 어드레스는, 스트라이드 사이즈 만큼의 차(差)가 있다.
판독 화상 위치 함수 Pl(p)와 기록 화상 위치 함수 Pl'(p)는, 각각 화상 입력 데이터(41)와 화상 출력 데이터(42)에서의 라인 번호 등으로 화상의 위치를 특정한다. 이 예에서는, 기록 화상 위치 함수 Pl'(p)=p+1이다. 포인터값 p가 중단 전에 출력을 완료한 라인수이기 때문에, 재개 후에 그 다음의 라인으로부터 출력을 재개하면 좋다. 화상 처리 X의 재개 후 최초로 출력해야 할 데이터가 정해지면, 화상 처리 X에 있어서 그 데이터를 구하기 위해서, 어디까지 입력 데이터를 되돌려 입력해야할 것인가를 산출할 수 있다. 이것을 미리 구하여, 판독 화상 위치 함수 Pl(p)를 규정해 둔다. 예를 들면 공간 필터의 경우, 그 탭(tap)수에 의해서 어떤 라인으로 되돌아가면 좋을지를 알 수 있다. 공간 필터의 예, 상하 반전 처리의 예, 및 블렌드 처리의 예를 후술 하지만, 화상 처리의 내용에 의해서, 되돌아가야 할 입력 데이터의 양을 알 수 있으므로, 그것에 기초하여 판독 화상 위치 함수 Pl(p)를 규정해 두면 좋다.
판독 어드레스 함수 F(p)와 기록 어드레스 함수 G(p)는, 각각, 판독 화상 위치 함수 Pl(p)와 기록 화상 위치 함수 Pl'(p)의 출력을, 실제의 메모리 상의 어드레스로 변환하는 함수이다.
파라미터 레지스터(24)에는, 화상 처리 모듈(30)에 화상 처리 X를 실행시키기 위한 파라미터 X를, 재설정한다. 파라미터는 처리의 경과에 의해서 변화하지 않는 화상 처리에 고유한 값이다. 예를 들면, 화상의 공간 필터의 경우에는, 탭수나 필터 계수이다. 복귀해야 할 태스크가 화상 처리 X인 것을 알면, 그 파라미터는 그 화상 처리를 개시할 때와 같이, 미리 프로그램 내에 유지하고 있는 값을 전송하는 등 방법에 의해, 재차 같은 값을 설정하면 좋다.
이상과 같이, 저장하는 데이터가 포인터값 p뿐이어도, 재개 후의 기록 어드레스 레지스터(22), 판독 어드레스 레지스터(23), 파라미터 레지스터(24)의 값을, 적절히 재설정할 수 있다.
다만, 파라미터 레지스터에 재설정해야 할 파라미터의 종류는, 포인터값으로부터 구할 수 없다. 중단한 화상 처리의 진척 상황이 포인터값이고, 진척 상황에는 의존하지 않는 화상 처리의 내용이 파라미터이므로, 파라미터를 저장할 필요로 하지 않는 점이 본 실시 형태의 본질이기 때문이다. 따라서, 재개할 때에 어느 화상 처리의 파라미터를 파라미터 레지스터에 재설정하면 좋은가를 나타내는, 콘텍스트 번호를 정의하고, 포인터값과 함께 저장해 두는 것도 유효하다. 이러한 실시 형태에 대해서는 후술한다.
본 실시 형태에서는, 판독 어드레스 함수(51)와 기록 어드레스 함수(52)는, 화상 위치 함수를 이용하여 나타내는 예를 설명했지만, 재개해야 할 입력 어드레스와 출력 어드레스를 포인터값에 근거하여 산출할 수 있으면 좋고, 반드시 화상 위치 함수를 이용할 필요는 없다. 입출력 데이터가 저장되어 있는 어드레스는, 화상 처리 태스크가 실행되는 하드웨어 환경에 의존하지만, 화상 처리의 진척을 입력 데이터의 위치, 연산 중의 데이터의 위치, 출력 데이터의 위치를, 화상 위치 함수를 이용하는 것에 의해, 각각의 스트림에서의 화상 데이터로서의 위치로 표현하고, 화상 위치 함수를 하드웨어 환경에 의존하지 않는 것으로 할 수 있다. 이것에 의해, 태스크 전환 제어부에서의 어드레스의 산출이 간략화된다. 예를 들면, 화상 처리 태스크를 기술하는 소프트웨어를 다른 하드웨어 환경에 이식하는 경우에는, 데이터의 저장되어 있는 선두 어드레스, 1 라인 당 데이터량 등, 입출력 데이터가 메모리 상에 어떻게 매핑(mapping)되고 있는지의 정보만을 정합시키면 좋다. 또한, 화상 처리 모듈(30)이 복수의 화상 처리를 실행하는 경우에는, 대응하는 복수의 화상 위치 함수와, 입출력 각각의 어드레스 함수에 의해서 표현하는 것에 따라서, 어드레스의 산출이 간략화된다. 복수의 화상 처리를 실행하는 경우에 대해서는, 후술의 실시 형태 5에서 설명한다.
실시 형태 1에 관한 신호 처리 장치의 효과에 대해 설명한다.
도 8은, 실시 형태 1에 의한 태스크 전환의 효과를 나타내는 설명도이다. 횡축에 시간의 경과에 따른, 화상 처리의 흐름을 나타내고 있다. (a)는 우선 처리를 요구하는 인터럽트(interrupt)가 없는 통상 처리이다. 이 예에서는, 화상의 프레임 마다 처리를 행하는 태스크가 실행되고, 태스크의 종료시에 프레임 처리의 종료가 이들 화상 처리를 관리하는 OS 등의 소프트웨어에 대해서 통지된다. 프레임 1의 처리중에 다른 화상 처리 태스크의 우선 처리를 요구하는 인터럽트가 있었을 때, 종래 기술에서는, 2 종류의 대응 방법이 고려될 수 있다. (b)는 프레임 1의 종료를 기다려 우선 화상 처리 Y의 태스크를 개시하는 경우이며, (c)는 프레임 1의 처리를 즉시 중단하여 우선 화상 처리 Y의 태스크를 개시하고, Y의 종료 후, 프레임 1의 선두로 돌아와 처리를 재개하는 경우이다.
(b)에서는, 프레임 1의 종료를 기다려 중단 처리를 행하고, 그 후, 우선 화상 처리 Y의 태스크를 실행하며, 우선 처리가 완료한 후에, 이미 종료하고 있는 프레임 1의 다음의 프레임 2의 선두로부터 중단 전의 화상 처리를 재개한다. 프레임 1의 처리를 도중에 중단하는 것은 아니기 때문에, 저장해야 할 정보는 프레임 1을 완료했다고 하는 정보만으로 좋고, 완료한 프레임 1에 이어서 프레임 2로부터 재개하면 좋기 때문에, 복귀해야 할 정보도 없다. 그러나, 우선되어야 할 화상 처리 Y의 개시가 처리중의 프레임의 처리를 기다리게 되는 부분만큼 늦어진다고 하는 문제가 있다.
한편, (c)는, 프레임 1의 처리를 강제적으로 중단한다. 연산 경과 등의 정보를 모두 파기하고, 우선 화상 처리 Y를 실행한다. 이것에 의해, 우선되어야 할 화상 처리 Y의 개시가 처리중의 프레임의 처리를 기다리게 되는 부분만큼 늦어진다고 하는, 상기의 문제는 해결된다. 그러나, 재개할 경우에, 프레임 1에 대한 처리가 중단했을 때의 도중 경과 정보를 남기지 않으면, 프레임 1의 처리의 선두로부터 재차 처리를 행하지 않으면 안되어, 우선 처리 인터럽트의 전까지 실행된 프레임 1의 처리가 소용없게 된다.
화상 처리를 시작으로 하는 신호 처리는, 취급하는 데이터의 양이 방대함과 함께, 처리의 도중 경과의 데이터도, 통상의 소프트웨어보다 방대하다. 예를 들면, 3×3의 화상의 공간 필터의 경우, 중앙 화소의 데이터를 계산하기 위해서, 입력으로서 주위의 8 화소의 데이터를 필요로 한다. 탭수가 많으면 당연히 입력으로서 필요한 데이터수도 많아진다. 이것을 통상의 소프트웨어의 콘텍스트 스위칭과 같은 개념으로, 처리 도중의 데이터 모두를 저장시키도록 하면, 어느 화소의 연산 후에 중단한 후, 다음의 화소로부터 재개하기 위해서는, 입력에 필요한 주위의 화소 데이터는 물론, 이미 입력되어 차후 태스크에서 참조되는 화소 데이터를 모두 저장해 두게 된다. 이 경우에 저장해야 할 데이터의 양이, 통상의 소프트웨어와 비교하여 방대하게 되어 버리는 것은 자명하다. 그 때문에, 통상의 소프트웨어의 콘텍스트 스위칭과 같이 처리의 도중 경과의 모든 정보를 저장시키는 것은, 현실적으로 허용되지 않고, 종래에는 우선 처리를 위한 처리로서 (b) 또는 (c)가 채용되고 있다.
본 실시 형태 1에 있어서는, 저장하는 데이터는 포인터값 p뿐이며, 포인터값은, 화상 처리부가 출력을 완료한 출력 데이터의 라인 번호이다. 복귀할 때는, 저장한 포인터값 p로부터 필요한 판독 어드레스와 기록 어드레스를 산출하여 어드레스 레지스터(22, 23)에 설정하고, 파라미터 레지스터(24)를 재설정할 뿐이므로, (d)에 나타내는 바와 같이, 중단 처리와 재개 처리에 필요로 하는 시간은, (b) (c)와 같이 극히 짧게 끝난다. (c)와 같이, 우선 처리 인터럽트의 후, 프레임 1의 화상 처리의 도중에 중단 처리를 행하고, 곧바로 우선 화상 처리 Y를 개시하고 있으므로, (b)와 같이 우선 화상 처리 Y를 기다리게 하는 일이 없고, 또한, 재개 처리 후는, (c)와 같이 프레임의 선두로 돌아오는 것이 아니라, 프레임 1에서 출력완료의 제p 라인의 다음의 라인으로부터 처리를 재개하므로, 이미 행한 처리가 소용 없게 되는 것은 아니다.
본 실시 형태에 있어서는, 포인터값이 출력완료의 라인 번호인 경우에 대해 설명했지만, 포인터값은, 출력 스트림에서의 화소 번호, 라인 번호, 블록 번호, 혹은 프레임 번호, 또는 그 조합 중 어느 하나여도 좋다. 또한, 포인터값이 출력이 아니라 입력완료의 입력 데이터의, 입력 스트림에서의 화소 번호, 라인 번호, 블록 번호, 혹은 프레임 번호, 또는 그 조합 중 어느 하나여도 좋다.
화상 처리를 시작으로 하는 신호 처리는, 입력 데이터를 순차 입력하고, 연산 처리를 실시하여 출력 데이터를 순차 출력한다. 태스크 전환에 있어서, 연산의 도중 경과를 모두 저장하고 복귀할 수 있으면 이상적이지만, 이것이 현실적으로 허용되지 않는 것은, 상술한 대로이다. 본 발명의 발명자는, 연산(演算)의 도중 경과(途中 經過)는, 입력 데이터를 어느 정도 되돌아가 재차 입력하면, 재현할 수 있는 것을 알아냈다. 저장하는 데이터를 화상 처리의 경과를 나타내는 포인터의 값만으로 하고, 복귀 때에는 그 포인터값에 근거하여, 다음으로 출력해야 할 데이터의 위치를 구하고, 또한 그 출력을 산출하기 위해서 필요한 모든 입력 데이터 중 선두로 돌아와 처리를 재개하면, 재개 후의 화상 처리 태스크의 진행에 따라 중단했을 때의 처리의 도중 경과가 재현되고, 다음으로 출력해야 할 데이터의 산출을 시작으로 하여, 그 후의 화상 처리를 중단한 위치로부터 이어서 재개한 것과 같이 재개할 수 있다.
또한, 저장(saving)하는 값은 포인터값만으로 충분하지만, 재개하는 화상 처리의 내용을 나타내서, 예를 들면 콘텍스트 번호를 더 저장해도 좋다. 포인터값과 콘텍스트 번호는, 취해 얻는 값이 한정되므로, 각각 1 바이트 내지 2 바이트이면 충분하다. 화상 처리의 도중 경과를 모두 저장하는 경우와 비교해서 극히 적은 정보량을 저장하면 충분하게 된다.
〔실시 형태 2〕<공간 필터(FIR 필터)> 화상 처리 모듈(30)의 실행하는 화상 처리가 화상의 공간 필터인 경우의 실시 형태에 대해 설명한다. 실시 형태 1에 있어서, 공간 필터 처리에 대응하는 화상 위치 함수를 이용하면 좋고, 다른 구성 및 동작은 실시 형태 1과 같다.
도 9는, 공간 필터 처리에 대응하는 화상 위치 함수의 개념을 나타내는 설명도이다. 수평 사이즈 H, 수직 사이즈 V의 화상 데이터에, 3×3의 FIR 필터로 나타내는 공간 필터 처리를 실시하여, 같은 크기의 화상 데이터를 출력한다. H×V의 입력 화상 데이터는, 메모리(40) 상에 선두 어드레스가 A로서 저장되어 있고, 어드레스 A'를 선두로서 출력한다. 화상의 수평 사이즈 H는, 메모리의 스트라이드 사이즈 h와 일치시켜도 좋고, 차이가 나도 좋다. 입력 데이터(41)와 출력 데이터(42)는, 선두 어드레스가 다르지만 같은 구조이기 때문에, 도 9에서는, 입력 데이터(41)만을 도시하고, 출력 데이터의 도시는 생략하고 있다.
FIR 필터는, Finite Impulse Response Filter의 약어로, 어느 화소의 값을 구하기 위해서, 그 화소의 주변의 화소 데이터에 소정의 계수(係數)를 걸어 가중 가산(weighting addition)하는 연산을 행하는 것이다. 출력하는 화소를 중심으로 전(全)방향으로 인접하는 8 화소의 데이터를 이용하는 것이, 3×3의 FIR 필터이다. 화상 데이터를 평면으로 했을 때, 3×3의 정방형의 영역을 입력으로 하고 그 중앙의 화소에 대해 출력 데이터를 산출한다. 2 화소 먼 곳까지의 데이터를 입력할 경우에는 5×5, 3 화소 먼 곳까지의 데이터를 입력할 경우에는 7×7의 FIR 필터가 된다. 3×3, 5×5, 7×7 등의 크기를 탭수, 혹은 차수라고 부른다.
선두로부터 C라인의 출력을 완료한 시점에서 우선 처리가 요구되고, 공간 필터 처리를 중단한 것으로 한다. 이 때 포인터값 p는 C이며, 태스크 전환 제어부는 이 값을 저장한다. 이 시점에서, 판독 어드레스 레지스터는, C+1 라인의 판독을 완료하고 있다. 3×3의 FIR 필터는, 출력하는 화소의 데이터를 구하기 위해서, 인접하는 8 화소 모든 데이터를 입력으로 하여 연산하므로, C라인의 데이터의 출력을 완료하고 있다고 하는 것은, C+1 라인의 입력을 완료하고 있는 것으로 되기 때문이다.
우선 처리를 완료하고 복귀할 때에는, 중단 전에 출력을 완료한 C라인에 이어서, C+1 라인의 출력으로부터 재개한다. 이 때문에, 기록 화상 위치 함수는 Pl'(p)=p+1이다. C+1 라인의 데이터를 산출하기 위해서 필요한 데이터 중 선두의 데이터는, C라인의 입력 데이터이다. 이 때문에, 판독 화상 위치 함수는 Pl(p)=p가 된다. 이 때, 판독 어드레스 함수는 F(p)=A+(p-1)×h가 되고, 기록 어드레스 함수는 G(p)=A'+p×h가 된다. 여기서, h는 메모리 스트라이드 사이즈(memory stride size)이다.  
도 9는 3×3의 FIR 필터에 의한 공간 필터에 대해서 예시했지만, 일반적으로 N×N(N는 홀수)의 FIR 필터에 의한 공간 필터의 경우, 기록 화상 위치 함수는 Pl'(p)=p+1이며, 판독 화상 위치 함수는 Pl(p)=(p+1)-(N-1)/2가 된다. 저장한 포인터값의 다음의 라인으로부터 출력을 재개하면 좋기 때문에, 기록 화상 위치 함수는 3×3의 FIR 필터에 의한 공간 필터의 경우와 같다. 판독 화상 위치 함수에 대해서는, p+1 라인의 출력을 구하기 위해서, (N-1)/2 라인 전까지의 데이터가 입력으로서 필요하기 때문에, 상기와 같이 규정된다.
3×3의 FIR 필터에 의한 공간 필터의 경우, C라인의 출력을 완료하고 중단한 시점에서는, C+1 라인의 데이터까지, 화상 처리 모듈(30)에 입력되어 있다. 일반의 소프트웨어의 콘텍스트 스위칭과 같은 수법을 적용하면, C+1 라인의 출력으로부터 재개하기 위해서 C+2 라인으로부터 입력을 재개하게 된다. 그러나, 이것을 실현하기 위해서는, 이미 화상 처리 모듈(30)에 입력되어 있는 C라인 및 C+1 라인의 데이터 모두를 저장하는 것이 필요하다. 화상의 수평 사이즈는, VGA에서 640 pixel, 고정밀화에 의해, 800~1024 pixel로 증가할 수 있고, 1 라인 분(分)의 데이터는 1 화소의 휘도 데이터가 8 비트로 가정해도 약 1 KByte가 되며, 3색 각 2 Byte로 하면 약 6 KByte로도 된다. 필터의 탭수가 커지면, 거기에 따라 저장해야 할 데이터의 라인수가 증가하므로, 저장해야 할 데이터량은 방대하게 된다. 실용상, 화상 처리의 데이터를 저장시키는 것은 허용되지 않는다.
본 실시 형태에 있어서는, 2 라인 분의 입력 데이터를 저장하고, 복귀시키는 대신에, 그러한 데이터를 재차 입력한다. 그 때문에, C+2 라인으로부터의 입력을 재개하지 않고, C라인까지 되돌아가 입력을 재개한다. 이것에 의해, 저장해야 할 데이터는 포인터값만으로 된다. 포인터값은 실시 형태에서는 라인 번호이면 좋기 때문에, 2 Byte 있으면 충분하다.  
이상은, 출력을 완료한 라인수를 포인터로 했을 경우에 대해 설명했지만, 입력을 완료한 라인수를 포인터로 해도 좋다. 입력 화상 위치 함수는 Pl(p)=p-2가 되고, 출력 화상 위치 함수는 Pl'(p)=p-1이 된다.
본 실시 형태에서는, 라인의 도중에 우선 처리의 요구가 있어도, 그 라인의 처리를 완료한 후에 중단하는 처리를 행하지만, 처리중의 라인의 처리를 강제 종료하여 중단하고, 재개 후는 그 라인의 최초부터 처리를 재개한다. 더욱 개량하여, 라인의 도중에 처리를 중단하고, 또한 재개시키기 위해서는, 포인터를 라인수와 화소수로 구성하면 좋다. 저장·복귀하는 데이터가 포인터의 값뿐인 것은 같지만, 포인터의 내용이 라인수 뿐만이 아니라 화소수도 포함하므로, 저장·복귀하는 데이터의 양은 많아지지만, 라인 처리의 종료를 기다리는 일없이 우선 처리를 개시할 수 있고, 또는 처리의 도중 경과를 파기하는 일 없이 라인 처리의 도중부터 재개할 수 있으므로, 저장과 복귀에 필요로 하는 시간적인 오버헤드를 더 억제하여, 태스크 전환을 실행할 수 있다.
또한, H×V의 장방형(長方形)의 화상 주변부에서는, 본래 필요한 화소가 H×V의 장방형의 외측에 상당하는 경우에 입력해야 할 데이터를 얻을 수 없는 상태가 된다. 이 경우에는, 본 실시 형태에도, 화상의 공간 필터 전반에 있어서의 주지의 화상단 처리를 적용할 수 있다.
본 실시 형태에서는, 처리 대상 라인의 상하의 라인의 데이터를 입력하는 신호 처리의 예로서, FIR 필터를 채택했다. 확대 축소 처리에 대해서도, 보간(補間) 혹은 솎아냄(間引き)을 하기 위해서 처리 대상 라인의 상하의 라인의 데이터를 입력할 필요가 있으므로, 같은 개념으로 화상 위치 함수와 어드레스 함수를 구성할 수 있다.
〔실시 형태 3〕<상하 반전 처리> 화상 처리 모듈(30)이 실행하는 화상 처리가 화상의 상하 반전 처리인 경우의 실시 형태에 대해 설명한다. 실시 형태 1에 있어서, 상하 반전 처리에 대응하는 화상 위치 함수를 이용하면 좋고, 다른 구성 및 동작은 실시 형태 1과 같다.
도 10은, 상하 반전 처리에 대응하는 화상 위치 함수의 개념을 나타내는 설명도이다. 수평 사이즈 H, 수직 사이즈 V의 화상 데이터에, 상하 반전 처리를 실시하여, 같은 크기의 화상 데이터를 출력한다. H×V의 입력 화상 데이터는, 메모리(40)상에 선두 어드레스를 A로서 저장되어 있고, 어드레스 A'를 선두로서 출력한다. 화상의 수평 사이즈 H는, 메모리 스트라이드 사이즈 h와 일치시켜도 좋고, 차이가 나도 좋다. 입력 데이터(41)와 출력 데이터(42)는, 선두 어드레스가 다르지만 같은 구조이기 때문에, 도 10에서는, 입력 데이터(41)만을 도시하고, 출력 데이터(42)의 도시는 생략하고 있다.
상하 반전 처리에서는, 위부터 순서로 입력하여 아래부터 순서로 출력하는 경우와, 아래부터 순서로 입력하여 위부터 순서로 출력하는 경우가 있다. 위부터 순서로 입력하여 아래부터 순서로 출력하는 경우는 입력 데이터가 아래까지 갖추어지지 않아도 처리를 개시할 수 있지만, 출력은 선두 데이터가 최후로 출력되므로, 선두 데이터가 출력될 때까지 다음의 처리를 개시할 수 없는 것이 많다. 반대로 아래부터 순서로 입력하여 위부터 순서로 출력하는 경우는, 입력 데이터 모두 갖추어지는 것을 기다려서 처리를 개시해야 하지만, 선두 데이터로부터 순차 출력되므로, 다음의 처리를 순차 시작하는 것이 가능해진다.
아래부터 순서로 입력하여 위부터 순서로 출력하는 실시 형태에 대해 설명한다.
포인터는, 출력완료의 라인수를 유지하는 것으로 한다. 아래부터 C라인까지 입력되고 C라인 출력완료의 시점에서 우선 처리가 요구되었다고 하면, 저장되는 포인터값은 p=C가 된다. 도 10에서 짙은 해칭 부분이 입력 데이터(41)에 있어서 입력완료의 영역이다. 반전 처리이므로, 아래부터 C라인 입력된 데이터는, 도시를 생략한 어드레스 A'를 선두로 하는 영역에 위부터 C라인까지 출력되고 있다.
복귀 후, 다음으로 출력해야 할 데이터는, C+1 라인이므로, 기록 화상 위치 함수 Pl'(p)=p+1이 된다. 이 때, 기록 어드레스 함수는 G(p)=A'+p×h가 된다.
판독 위치 함수는, 중단 전까지로 아래부터 C라인까지 입력이 끝나 있고, 상하 반전 처리에서는 그것에 대응하는 반전 출력도 완료하고 있으므로, 재개 후에 입력이 필요한 것은 아래부터 C+1 라인째이며, 메모리 상에서는 V-C 라인째이다. 판독 화상 위치 함수는 Pl(p)=V-p이며, 판독 어드레스 함수는 F(p)=A+(V-p-1)×h가 된다.
본 실시 형태에서는, 처리 대상의 라인에 대해서 필요한 라인의 순번이 다른 예로서, 상하 반전 처리를 채택해서 설명했지만, 좌우 반전 처리, 회전 처리에 대해서도, 같은 개념으로, 화상 위치 함수와 어드레스 함수를 구성할 수 있다.
또한, 상하 반전 처리와 좌우 반전 처리에서 대칭축이 화면 중앙에 없는 경우, 및, 회전 처리에서는, 화상의 말단 처리가 필요하게 되는 경우가 있지만, 본 실시 형태에 대해서도, 주지의 화상단(畵像端) 처리의 수법을 적용할 수 있다.
〔실시 형태 4〕<블렌드 처리(blending)> 화상 처리 모듈(30)이 실행하는 화상 처리가 복수의 화상의 블렌드 처리인 경우의 실시 형태에 대해 설명한다. 실시 형태 1에 있어서, 블렌드 처리에 대응하는 화상 위치 함수를 이용하면 좋고, 다른 구성 및 동작은 실시 형태 1과 같다.
도 11은, 블렌드 처리에 대응하는 화상 위치 함수의 개념을 나타내는 설명도이다.
설명을 간략화하기 위해, 2 화면의 화상을 합성하는 실시 형태에 대해 설명한다. 메모리(40) 상에 어드레스 Ap를 선두로 하여 저장되어 있는 Hp×Vp의 친화면(parent screen)과, 어드레스 Ac를 선두로 하여 저장되어 있는 Hc×Vc의 자화면(child screen)을 합성하여, 어드레스 A'를 선두로 하여 합성된 화상을 출력한다. 친화면, 자화면 및 출력 화상의 메모리 스트라이드 사이즈를 각각, hp, hc, 및 h로 한다. 합성된 화상은, Hp×Vp의 친화면의 내측에 좌상으로부터 수평 방향으로 Hoff와 수직 방향으로 Voff의 오프셋을 더한 영역을 Hc×Vc의 자화면에 옮겨놓은 것이다.
포인터는, 출력완료의 라인수를 유지하는 것으로 한다. C라인까지 출력한 시점에서 우선 처리가 요구되었다고 하면, 저장되는 포인터값은 p=C가 된다.
복귀 후, 다음으로 출력해야 할 데이터는, C+1 라인이므로, 기록 화상 위치 함수 Pl'(p)=p+1이 된다. 이 때, 기록 어드레스 함수는 G(p)=A'+p×h가 된다.
판독 위치 함수는, 친화면에 대한 Plp(p)와 자화면에 대한 Plc(p)를 정의하고, 판독 어드레스 함수는, 친화면에 대한 Fp(p)와 자화면에 대한 Fc(p)를 정의한다.
합성 화상의 C+1 라인의 출력에 필요한 친화면으로부터의 입력은, C+1 라인이므로, Plp(p)=p+1이며, 어드레스 함수는 Fp(p)=Ap+p×hp가 된다.
합성 화상의 C+1 라인의 출력에 필요한 자화면으로부터의 입력은, C-Voff≥0이면 C-Voff+1 라인이므로, Plc(p)=p-Voff+1이며, 어드레스 함수는 Ac+(p-Voff)×hc가 된다. C-Voff<0의 경우는 해당 라인에서는 자화면이 겹치지 않기 때문에, 자화면의 데이터를 입력할 필요는 없다.
이와 같이, 복수의 화상을 입력하는 경우에는, 각각의 입력 화상에 판독 화상 위치 함수와 판독 어드레스 함수를 준비한다.
〔실시 형태 5〕<복수의 처리의 조합> 화상 처리 모듈(30)이 실행하는 화상 처리가 복수의 화상 처리의 조합인 경우의 실시 형태에 대해 설명한다. 실시 형태 1에 있어서, 복수의 화상 처리의 조합에 대응하는 화상 위치 함수를 이용하면 좋고, 다른 구성 및 동작은 실시 형태 1과 같다.
복수의 화상 처리의 조합은 다양하게 있지만, 우선, 입력 화상에 대해서 화상 처리 X를 실행하고, 그 출력에 대해서 화상 처리 Y를 실행하여 출력 화상을 얻는, 종속 처리에 대해 설명한다.
출력 화상에 있어서, 출력완료의 라인 번호를 포인터값 p로 하고, 중단 처리로 저장시킨다. 복귀 후, 최초로 출력해야 할 것은 p+1 라인이 된다. 화상 처리 Y에 대해서, 출력해야 할 라인 번호를 입력하고 그것에 필요한 입력 데이터의 선두의 라인 번호를 출력하도록, 화상 위치 함수 Ply(p)를 정의한다. 이 때, 그 전단(前段)의 화상 처리 X는, 화상 처리 Y가 최초로 필요로 하는 입력 데이터의 선두의 라인 번호 즉, Ply(p)를 입력하고, 그것에 필요한 입력 데이터의 선두의 라인 번호를 출력하도록, 화상 위치 함수 Plx(p)를 정의한다.  
어드레스 함수 F(p)는, Plx(p)가 지정하는 데이터의 메모리 상의 어드레스를 주도록 정의한다. 출력 화상의 선두 어드레스를 A', 메모리 스트라이드 사이즈를 h로 하면, 어드레스 함수는 F(p)=A'+(Plx(Ply(p))-1)×h로 하여 정의할 수 있다.
화상 위치 함수와 어드레스 함수는, 합성했을 때에 적절한 어드레스를 산출할 수 있으면 충분하므로, 화상 위치 함수의 입출력을 출력완료의 라인수로 할지, 입력완료의 라인수로 할지, 화면 전체에서의 라인 번호로 할지 등, 정의의 방법은 일반적으로는 임의이다.
상기와 같은 조합을 고려하는 경우에는, 입력 화상, X의 출력 화상, Y의 입력 화상 및 최종적인 출력 화상이, 모두 같은 크기로, 화상 위치 함수의 입출력을 선두로부터의 라인 번호로 통일하면, 함수의 결합이 간략화된다. 즉, 복수의 화상 처리에 대한 화상 위치 함수의 사이에서, 오프셋 등의 처리를 실시하는 일 없이, 후단(後段)의 처리에 관한 화상 위치 함수의 출력을 그 전단의 처리에 관한 화상 위치 함수의 입력으로서 네스팅(nesting)할 수 있다. 예를 들면, 본 실시예에서는, Plx(Ply(p))로 하고 있다. Ply(p)의 출력의 정의가 화상 선두로부터의 라인수여도, Plx의 입력의 정의가 화상 아래부터의 라인수인 경우에는, 단순하게 Plx(Ply(p))로 할 수 없다. 화상의 수직 방향의 사이즈 V를 사용하여 Plx(V-Ply(p)) 등과 같이, 정합(整合)을 취할 필요가 생긴다.
이상, 포인터가 출력완료의 라인 번호인 경우에 대해 주로 설명했지만, 포인터는 화상 처리의 경과를 나타내는 다른 방법에서도, 똑같이 본 실시 형태를 적용할 수 있다. 포인터는 라인 번호 외, 화소 번호, 블록 번호, 프레임 번호, 또는 그 조합이어도, 똑같이 화상 위치 함수를 정의하고, 복귀 후의 입력 개시 어드레스를 구하는 것에 의해서, 같은 효과를 나타낼 수 있다. 또한, 화상 위치 함수의 입출력이, 라인 번호로 통일되지 않고, 화소 번호, 블록 번호, 프레임 번호, 또는 그 조합을 이용하는 함수가 혼재하고 있어도, 후단의 처리에 관한 화상 위치 함수의 출력을 그 전단의 처리에 관한 화상 위치 함수의 입력으로 하여 네스팅할 때에 정합을 취하면 좋다. 저장한 포인터의 값에 근거하여, 복귀 후의 출력이 중단 시점으로부터 재개할 수 있도록, 그 출력을 산출하기 위해서 필요한 입력 데이터의 선두를 순차로 되돌아가 산출하고, 그 데이터의 메모리 상의 어드레스를 지정하여 입력을 재개하면 좋다.
이것에 의해, 저장해야 할 정보량은 포인터의 값만으로 필요 최소한이며, 방대한 정보의 저장과 복귀를 행하지 않고, 복귀 후의 신호 처리를 재개하기 위해서 필요한 입력 데이터의 위치 정보는 그 포인터값으로부터 산출하고 있을 뿐이므로, 저장과 복귀에 필요로 하는 시간적인 오버헤드를 억제할 수 있다.
〔실시 형태 6〕<블록 처리> 화상 처리에는, 화상을 정방형의 블록으로 나누어, 블록마다 처리를 실행하는 것이 있다. 예를 들면, 이산(離散) 코사인 변환은, 일반적으로 8화소×8화소의 블록에 대해서, 행렬 연산을 실행하여 주파수 영역의 데이터로 변환하는 처리이다. 블록의 형상은 정방형이 일반적이지만, 그것에 한정되는 것은 아니다.
블록 처리의 경우에서도, 라인 처리와 같이 라인마다 순차 판독하고, 화상 처리 모듈 내에의 입력이 완료한 블록으로부터 순서적으로 처리를 실행할 수도 있다. 화상 처리 모듈 내에 수 블록 만큼의 버퍼가 필요하지만, 판독 어드레스의 제어는 간략하게 끝난다. 이 경우는, 지금까지 진술한 바와 같이, 포인터는 라인수로 나타낼 수 있다. 내부의 처리가 블록 처리여도, 포인터가 라인 번호이면, 실시 형태 1을 그대로 적용할 수 있다.
라인 마다는 아니고 블록 마다 입력하고 출력하는 경우에, 판독과 기록의 어드레스 제어는, 보다 복잡하게 되지만, 화상 처리 모듈에는, 필요한 데이터만이 입력되므로, 처리 전의 데이터를 유지하기 위한 내부 버퍼를 필요로 하지 않는다. 이 경우, 포인터는 입력완료 또는 출력완료의 블록 번호로 할 수 있다.
도 12는, 블록 처리에서의 태스크 전환에 대한 설명도이다. 화상 처리부(10)의 제어부(20)에 설치된 파라미터 레지스터(24)에는, 화상 처리 모듈(30)에 대해서 블록 처리를 지시하는 파라미터 W가 저장되어 있다. 입력 데이터(41)는 어드레스 A를 선두로서 메모리(40)에 저장되어 있고, 출력 데이터(42)는 어드레스 A'를 선두로서 출력된다. 블록 사이즈는 M×M으로 하고, 메모리의 횡방향에 L개의 블록이 저장되어 있는 것으로 하며, 출력 데이터(42)도 같은 형상으로 메모리 상에 저장되는 것으로 한다.
포인터는 출력완료의 블록의 블록 번호 q를 유지하고 있고, 우선 처리가 요구되어 중단한 시점에서, 출력 데이터(42)가 q블록까지 출력되고, 입력 데이터(41)는 q+1 블록까지 입력을 완료하고 있다. 태스크 전환 제어부는, 포인터값 q를 저장하고 우선 처리를 실행시켜, 이것이 끝났을 때에 포인터값 q에 근거하여 판독 어드레스와 기록 어드레스를 산출한다. 정수 i와 j를 사용하여 블록 번호 q를 q=i×L+j(0≤j<L)로 나타냈을 때, 그 블록의 선두 어드레스는, A+i×L×M^2+(j-1)×M이 된다.
재개 후 최초로 출력해야 할 블록은, q+1 블록이며, q+1=i×L+j로 나타낼 때, 기록 어드레스는, A'+i×L×M^2+(j-1)×M이 된다. 이것을 출력하기 위해서 필요한 입력 블록은 q+1 블록으로, 판독 어드레스는, A+i×L×M^2+(j-1)×M이 된다.
블록 번호에 근거하여 어드레스를 구하는 함수가 단순해지지는 않지만, 개념은, 라인 번호를 포인터로 했을 경우와 같다. 저장한 포인터값 q에 근거하여, 재개 후 최초로 출력해야 할 블록을 구하고, 이것을 출력하기 위해서 필요한 입력 블록의 위치로부터, 그 데이터가 저장되어 있는 메모리 상의 어드레스를 구하여, 그 어드레스로부터 처리를 재개한다.
이것에 의해, 저장해야 할 정보량은 블록 번호인 포인터의 값만으로 필요 최소한이며, 방대한 정보의 저장과 복귀를 행하지 않고, 복귀 후의 신호 처리를 재개하기 위해서 필요한 입력 데이터의 위치 정보는 그 포인터값으로부터 산출하고 있을 뿐이므로, 저장과 복귀에 필요한 시간적 오버헤드를 억제할 수 있다고 하는 효과도 같다.
또한, 블록 처리와 라인 처리가 조합된 경우도, 같은 개념으로 실시할 수 있다.
〔실시 형태 7〕<프레임간 처리> 화상 처리에는, 또한 프레임간의 데이터를 참조하여 행하는 처리가 있다. 예를 들면, 움직임 보상(motion compensation)등을 하는 경우에, 1 프레임 전 화상과의 차분을 취하여, 움직임의 유무나 방향, 크기 등을 산출하는 처리이다.
도 13은, 프레임간 처리를 행하는 신호 처리 장치의 기능 블럭도이다.
입력 데이터(41)는, 어드레스 A를 선두로 하여 저장되어 있는 처리 대상의 프레임에 더하여, 어드레스 A-1 프레임을 선두로 하여 저장되어 있는 1 프레임 전의 데이터도, 화상 처리 모듈(30)에 입력할 필요가 있다. 출력 데이터(42)는, 어드레스 A'를 선두로 하여 메모리(40)에 기록한다. 포인터(21)에는, 예를 들면 출력 완료의 라인 번호를 유지한다. 중단했을 때에는 포인터값 p를 저장하고, 저장한 포인터값 p에 근거하여 처리를 재개한 후 최초로 출력해야 할 데이터의 위치를 p+1 라인으로서 구하고, 그것에 대응하는 기록 어드레스를 설정하는 점은, 같다. 한편, 판독 어드레스는, 처리 대상의 프레임과 그 1 프레임 전의 프레임에 대해서, 각각, 화상 위치 함수와 어드레스 함수를 정의하고, 각각의 프레임에 대해 판독 어드레스 레지스터를 설치하면 좋다. 통상, 처리 대상의 화상 데이터의 위치와 그 처리에 필요한 1 프레임 전의 화상 데이터의 위치는, 프레임 내의 상대적인 위치가 같은 것이 대부분이므로, 각각에 설치해도, 어드레스 함수 등은 정확히 1 프레임의 차이를 갖게 하면 좋다.
이것에 의해, 프레임 처리여도, 저장해야 할 정보량은 포인터의 값뿐이며, 포인터값도 라인 번호로 할 수도 있으므로, 저장해야 할 정보량은 필요 최소한이다. 방대한 정보의 저장과 복귀를 행하지 않고, 복귀 후의 신호 처리를 재개하기 위해서 필요한 입력 데이터의 위치 정보는 그 포인터값으로부터 산출하고 있는 점에서도 다른 실시 형태와 같기 때문에, 저장과 복귀에 필요로 하는 시간적인 오버헤드를 억제할 수 있다고 하는 효과도 같다. 또한 움직임 보상 등을 행하는 복수 프레임의 데이터를 이용하여 화상 처리를 행하는 경우에 있어서도 화상 위치 함수와 어드레스 함수를 각각 준비하는 것으로 본 실시 형태를 적용할 수 있다.
〔실시 형태 8〕<다중 우선 처리> 도 14는, 우선 처리중 추가의 우선 처리 요구에 의한 태스크 전환에 대한 설명도이다.
도 중의 우선도는 숫자가 작은만큼 우선도가 높은 것으로 한다.
우선도 3을 가진 처리 X의 화상 처리를 개시한다.
처리 X의 도중에 우선도 2를 가진 처리 Y의 요구가 들어가면, 처리 X에서 처리가 완료하고 있는 라인을 나타내는 포인터값 Px를 저장해, 처리 X를 중단, 포인터를 초기화한 후, 처리 Y를 개시한다.
또한, 도중에 우선도 1을 가진 처리 Z의 요구가 들어가면, 처리 Y에서 처리가 완료하고 있는 라인을 나타내는 포인터값 Py를 보존하고, 처리 Y를 중단, 포인터를 초기화한 후, 처리 Z를 개시한다.
처리 Z가 종료하면, 중단하고 있는 처리 가운데, 가장 우선도가 높은 처리 Y를 재개하기 위해, 저장한 포인터값 Py로부터 재개하는 어드레스를 구하여 처리를 재개한다.
처리 Y가 종료하면, 최후로 남아 있는 처리 X를 재개하기 위해, 저장한 포인터값 Px로부터 재개하는 어드레스를 구하여 처리를 재개한다.
포인터값은, 예를 들면, 주지의 푸쉬 팝 형의 스택(push-pop stack)에 저장하고, 복귀시킬 수 있다.
도 14에서는 2개의 우선 처리가 인터럽트한 경우의 예를 나타냈지만, 앞의 순서도에서 나타내 보인 처리를 행하는 것으로 3 이상 복수 요구가 도중에 발생한 경우에서도 같은 처리 방법에 의해, 포인터 1개로 다중의 우선도 처리를 행할 수 있다.
〔실시 형태 9〕<반도체 장치> 실시 형태 1에 관한 신호 처리 장치를 실시한 화상 처리 시스템에 대해 설명한다. 이 화상 처리 시스템은, 반도체 장치로서 실현될 수 있다.
도 2는, 실시 형태 1에 관한 신호 처리 장치를 실시한, 반도체 장치(46)의 블럭도이다.
화상 처리부(10)는, 화상 입력부(63), 화상 출력부(64), 및 CPU(45)와 메모리(40)에, 버스(55)를 통하여 접속되고 있다. CPU(45)는, 태스크 전환 제어부(50)의 기능 외, 시스템 전체의 제어도 행한다. 메모리(40)는 시스템에서 사용하는 화상 데이터의 저장 등에 이용한다. 화상 입력부(63)는 카메라나 텔레비전 방송 등 입력장치(61)로부터 보내져 오는 화상 데이터를, 버스(55)를 통해 메모리(40)에 기록한다. 화상 처리부(10)는 메모리(40) 상의 데이터를 입력으로 하여 필요한 화상 처리(확대 축소·화면합성·필터 처리 등)를 행하고, 처리완료의 화상 데이터를 다시 메모리(40)에 저장한다. 화상 출력부(64)는 LCD 등 표시장치(62)에 출력하기 위한 인터페이스로 처리완료 화상 데이터를 메모리로부터 판독하고, 시스템으로부터 출력하여 표시한다. 이러한 제어는 CPU(45)에 의해서 하드웨어와 소프트웨어가 협조하여 행해진다.
화상 처리부(10)는, 도 2에서는 내부를 생략해 나타내고 있지만, 도 1, 도 12, 도 13 등에 나타낸 실시 형태로 구성할 수 있다. 화상 처리 모듈은, 복수의 화상 처리를 행하는 하드웨어를 각각 갖추어 구성할 수 있고, 혹은, 1개의 프로그래머블한 가속기(programmable accelerator)여도 좋고, 또한, 그 조합에 의해서 실현되어도 좋다. 또한, CPU 상에서 동작하는 소프트웨어에 의해서 실현되어도 좋다.
도 1, 도 12, 도 13 등에 나타낸 실시 형태에 있어서, 태스크 전환 제어부(50)로서 설명한 기능은, CPU(45)로 실현될 수 있다. 중단 처리에 있어서 포인터값은 포인터 레지스터(21)로부터 판독하여 메모리에 기록하고, 재개 처리에 있어서 CPU(45)는, 포인터값을 메모리(40)로부터 판독하고, 화상 위치 함수와 어드레스 함수에 대입하여 재개 후의 판독 어드레스와 기록 어드레스를 구하고, 각 어드레스 레지스터(22, 23)에 설정한다. 포인터의 저장과 복귀는, 통상의 인터럽트 등의 예외 처리에서의 저장·복귀와 같이, 푸쉬 팝형의 스택을 이용한 주지 기술에 의한 것일 수 있다. 각종의 화상 처리의 파라미터는, 메모리(40) 상에 미리 저장해 놓고, 요구가 있던 처리, 혹은 재개할 처리의 내용에 따라 판독하고, 화상 처리부(10)의 파라미터 레지스터(24)에 설정하고, 화상 처리 모듈(30)에 해당하는 처리를 실행시킨다. 포인터를 저장하는 것만으로도 좋지만, 중단된 화상 처리의 내용을 나타내는 콘텍스트 번호를 더 저장시켜도 좋다. 재개할 경우에, 저장한 포인터값과 함께 중단한 화상 처리의 콘텍스트 번호를 판독하고, 그 번호로부터 화상 처리 내용을 판단하여, 필요한 파라미터를 메모리(40)로부터 판독하여 파라미터 레지스터(24)에 설정할 수 있다.
파라미터를, 처리의 경과에 의존하여 변화하지 않는 화상 처리 내용에 고유한 값으로 하고, 처리의 경과를 나타내는 것을 포인터만으로 하는 것으로, 중단 처리에서 파라미터 값을 저장할 필요가 없이 포인터 값만을 저장하면 충분하므로, 저장과 복귀에 필요로 하는 시간적인 오버헤드를 억제할 수 있다. 중단된 화상 처리의 내용을 나타내는 콘텍스트 번호를 더 저장하면, 재개시에 필요한 파라미터의 재설정이 용이하게 된다.
〔실시 형태 10〕<콘텍스트 처리부> 도 15는, 콘텍스트 처리부를 구비한 반도체 장치의 블럭도이다.
실시 형태 9에 있어서, 태스크 전환 처리부(50)의 기능을 CPU(45)의 소프트웨어로 실현한 것에 대신하여, 콘텍스트 처리부(70)를 더 갖춘 것이다.
콘텍스트 처리부(70)는, 제어부(71), 콘텍스트 위치 기억부(72), 및 복원부(73)를 갖춘다. 우선 처리가 요구되었을 때, 콘텍스트 기억부(72)는, 포인터값 p를 판독하여 기억부(76)에 기억하고, 아울러, 중단할 처리의 콘텍스트 번호(75)도 기억한다. 포인터값 p와 콘텍스트 번호(75)를 붙여서(관련지어) 기억한다. 이 기억은 푸쉬 팝 방식으로도 좋고, 스택(stack)한 순서를 나타내는 제어 NO를 맞추어 기억해도 좋다.
우선 처리가 종료하고 중단한 처리를 재개하는 경우에는, 콘텍스트 위치 기억부(72)에 기억한 포인터값에 근거하여, 복원부(73)에서 재개 후의 판독 어드레스와 기록 어드레스를 구하고, 판독 어드레스 레지스터(23)와 기록 어드레스 레지스터(24)에 설정한다. 또한 콘텍스트 번호(75)에 근거하여 중단한 처리 내용을 판별하여, 메모리(40)에 기억되어 있는 파라미터군으로부터 해당하는 파라미터를 판독하여 파라미터 레지스터(24)에 설정한다. 메모리(40)로부터의 파라미터의 전송은, 콘텍스트 처리부(70)가 버스마스터(bus master)로서 행동하는 다이렉트 메모리 액세스(direct memory access)여도 좋고, 콘텍스트 처리부(70)가 복원부(73)에 파라미터군을 미리 기억해 두고 전송해도 좋으며, 혹은, CPU(45)에 그러한 전송 제어를 요구해도 좋다.
이것에 의해, CPU(45)의 부담을 경감하고, 태스크 전환을 실시할 수 있다.
이상 본 발명자에 의해서 된 발명을 실시 형태에 근거하여 구체적으로 설명했지만, 본 발명은 그것에 한정되는 것이 아니고, 그 요지를 벗어나지 않는 범위에서 다양하게 변경 가능한 것은 말할 필요도 없다.
예를 들면, 실시 형태의 상세(詳細)에서는, 주로 신호 처리가 화상 신호를 대상으로 했을 경우에 대해 말했지만, 입력 데이터가 시계열 데이터 등으로 순차 입력되고, 정형(定形)의 처리를 실시하여 입력 데이터와 같은 시계열 데이터를 순차 출력하는 실시 형태도, 용이하게 실현될 수 있다. 순차 출력되는 출력 데이터가, 우선 처리에 의해서 중단했을 경우, 복귀할 때에 중단 후 끊어진 곳없이 출력하기 위해서 필요한 출력 데이터의 위치를 구하고, 그 데이터를 출력하기 위해서 필요한 모든 입력 데이터 중 선두로 돌아와 입력을 재개하면 좋기 때문이다.
10 신호 처리부
11 입력 스트림
12 출력 스트림
20 화상(신호) 처리 제어부
21 포인터
22 기록(출력) 어드레스 레지스터
23 판독(입력) 어드레스 레지스터
24 파라미터 레지스터
30 화상(신호) 처리 모듈
40 메모리
45 CPU
46 반도체 장치
50 태스크 전환 제어부
51 판독(입력) 어드레스 함수
52 기록(출력) 어드레스 함수
55 버스
70 콘텍스트 처리부
72 콘텍스트 위치 기억부
73 복원부
81 우선 처리를 받아들이는 스텝
84 처리를 중단하고, 포인터값을 저장하는 스텝
86 우선 처리를 개시하는 스텝
90 재개시에, 저장한 포인터값으로부터 재개하는 어드레스 값을 도출, 재설정하는 스텝

Claims (19)

  1. 복수의 입력 데이터로 이루어진 입력 스트림이 입력되고, 스트림 데이터에 소정의 태스크를 실행하여 복수의 출력 데이터로 이루어진 출력 스트림을 출력하는 신호 처리부를 갖추고,
    상기 입력 스트림은 입력 데이터를 상기 신호 처리부에 순차 입력하고, 상기 출력 스트림을 구성하는 출력 데이터를 상기 신호 처리부로부터 순차 출력하며, 상기 신호 처리부의 처리의 경과에 따른 상기 스트림 데이터에서의 데이터의 위치 정보를 나타내는 포인터를 갖추고,
    제1 태스크를 실행 중에 제2 태스크의 우선 처리가 요구되었을 때, 상기 포인터가 유지하는 값을 저장한 후, 상기 제2 태스크를 실행하고,
    상기 제2 태스크가 완료됐을 때, 상기 저장한 포인터의 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 상기 출력 스트림에서의 위치 정보를 구하고, 상기 다음으로 출력해야 할 출력 데이터를 산출하기 위해서 상기 신호 처리부에 입력할 필요가 있는 모든 입력 데이터 중 선두의 입력 데이터의 상기 입력 스트림에서의 위치 정보를 구하는, 신호 처리 장치.
  2. 제 1 항에 있어서,
    상기 신호 처리 장치는, 상기 입력 스트림을 저장하고 상기 출력 스트림을 기록하는 메모리와, 태스크 전환 제어부를 갖추고,
    상기 신호 처리부는, 입력 어드레스 레지스터와 출력 어드레스 레지스터를 갖추며, 상기 입력 어드레스 레지스터는, 상기 신호 처리부가 판독하는 상기 입력 데이터의 상기 메모리 상의 어드레스를 유지하고, 상기 출력 어드레스 레지스터는, 상기 신호 처리부가 기록하는 상기 출력 데이터의 상기 메모리 상의 어드레스를 유지하며,
    상기 태스크 전환 제어부는, 상기 제2 태스크가 완료됐을 때, 출력 위치 함수에 의해, 상기 저장한 포인터의 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 출력 스트림에서의 위치 정보를 산출하고, 출력 어드레스 함수에 의해, 상기 출력 위치 함수의 출력에 근거하여, 상기 다음으로 출력해야 할 출력 데이터의 상기 메모리에서의 어드레스를 산출하여, 상기 출력 어드레스 레지스터에 기록하고, 입력 위치 함수에 의해, 상기 저장한 포인터의 값에 근거하여, 상기 선두의 입력 데이터의 입력 스트림에서의 위치 정보를 산출하고, 입력 어드레스 함수에 의해, 상기 선두의 입력 데이터의 상기 메모리에서의 어드레스를 산출하여, 상기 입력 어드레스 레지스터에 기록하는, 신호 처리 장치.
  3. 제 2 항에 있어서,
    상기 스트림 데이터가 화상 데이터이며, 상기 포인터는, 상기 신호 처리부가 출력을 완료한 출력 데이터의 상기 출력 스트림에서의 화소 번호, 라인 번호, 블록 번호, 혹은 프레임 번호, 또는 그 조합을 유지하고,
    상기 출력 위치 함수는, 상기 저장한 포인터의 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 화소 번호, 라인 번호, 블록 번호, 혹은 프레임 번호, 또는 그 조합을 산출하며,
    상기 입력 위치 함수에 의해, 상기 저장한 포인터의 값에 근거하여, 상기 선두의 입력 데이터의 상기 입력 스트림에서의 화소 번호, 라인 번호, 블록 번호, 혹은 프레임 번호, 또는 그 조합을 산출하는, 신호 처리 장치.
  4. 제 2 항에 있어서,
    상기 스트림 데이터가 화상 데이터이며, 상기 포인터는, 상기 신호 처리부가 입력을 완료한 입력 데이터의 상기 입력 스트림에서의 화소 번호, 라인 번호, 블록 번호, 혹은 프레임 번호, 또는 그 조합을 유지하고,
    상기 출력 위치 함수는, 상기 저장한 포인터의 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 화소 번호, 라인 번호, 블록 번호, 혹은 프레임 번호, 또는 그 조합을 산출하며,
    상기 입력 위치 함수에 의해, 상기 저장한 포인터의 값에 근거하여, 상기 선두의 입력 데이터의 상기 입력 스트림에서의 화소 번호, 라인 번호, 블록 번호, 혹은 프레임 번호, 또는 그 조합을 산출하는, 신호 처리 장치.
  5. 제 2 항에 있어서,
    상기 제1 태스크가, 상기 신호 처리부에 의해서, 상기 입력 스트림에 신호 처리를 실시하여 얻은 출력 스트림을 순차적으로 다음의 신호 처리의 입력 스트림으로 하는 복수의 신호 처리를 포함한 신호 처리 태스크이며,
    상기 복수의 신호 처리의 각각에 대해서, 다음으로 출력해야 할 출력 데이터를 산출하기 위해서 상기 신호 처리부에 입력할 필요가 있는 모든 입력 데이터 중 선두의 입력 데이터의 위치 정보를 출력하는 부분 위치 함수를 갖추고, 상기 복수의 신호 처리 중 상기 제1 태스크에서 최후로 실행되는 신호 처리에 대응하는 부분 위치 함수에 상기 저장한 포인터의 값을 입력하며, 상기 복수의 신호 처리 중 상기 제1 태스크에서 후(後)에 실행되는 신호 처리에 대응하는 부분 위치 함수의 출력을, 그 직전에 실행되는 신호 처리에 대응하는 부분 위치 함수에 입력하는 것에 의해, 순차적으로 네스팅(nesting)하여, 상기 입력 위치 함수를 구성하는, 신호 처리 장치.
  6. 제 5 항에 있어서,
    상기 스트림 데이터는 화상 데이터이며, 상기 신호 처리부에 의해서 실시되는 신호 처리의 하나가 n×n(n는 3 이상의 홀수)의 공간 필터이며, 상기 공간 필터 처리에 대응하는 부분 위치 함수가, 출력을 완료한 라인 번호를 입력하고, 상기 저장시킨 포인터의 값의 (n-1)/2 라인 전의 라인 번호를 출력하며, 상기 입력 위치 함수가 상기 공간 필터 처리에 대응하는 상기 부분 위치 함수를 포함한, 신호 처리 장치.
  7. 제 5 항에 있어서,
    상기 스트림 데이터가 화상 데이터이며, 상기 신호 처리부에 의해서 실시되는 신호 처리의 하나가, 선두로부터 제V-n+1 라인의 입력 스트림을 판독하고 선두로부터 제n 라인에 출력하는 수직 방향의 사이즈가 V의 화상의 상하 반전 처리이며,
    상기 포인터는, 상기 상하 반전 처리의 출력을 완료한 라인 번호 p를 유지하고, 상기 상하 반전 처리에 대응하는 부분 위치 함수는, 제V-p라인을 출력하는, 신호 처리 장치.
  8. 제 1 항에 있어서,
    제1 태스크를 실행 중에 제2 태스크의 우선 처리가 요구되었을 때, 상기 포인터가 유지하는 제1 값을 저장한 후, 상기 제2 태스크를 실행하고,
    상기 제2 태스크를 실행 중에 제3 태스크의 우선 처리가 요구되었을 때, 상기 포인터가 유지하는 제2 값을 저장한 후, 상기 제3 태스크를 실행하며,
    상기 제3 태스크가 완료됐을 때, 상기 저장한 포인터의 제2 값에 근거하여, 상기 제2 태스크에서 다음으로 출력해야 할 출력 데이터의 위치 정보를 구하여 상기 제2 태스크를 재개하고,
    상기 제2 태스크가 완료됐을 때, 상기 저장한 포인터의 제1 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 위치 정보를 구하여 상기 제1 태스크를 재개하는, 신호 처리 장치.
  9. CPU와 메모리와 신호 처리부가 각각 버스에 접속되어 있고,
    상기 신호 처리부는, 신호 처리 모듈과 신호 처리 제어부를 갖추며,
    상기 신호 처리 모듈은, 입력된 복수의 입력 데이터로 이루어진 입력 스트림을 입력하고, 스트림 데이터에 소정의 신호 처리를 실시하여 복수의 출력 데이터로 이루어진 출력 스트림을 출력하며,
    상기 신호 처리 제어부는, 상기 신호 처리 모듈의 처리 경과에 따른 처리 대상 데이터의 스트림 데이터에서의 위치 정보를 가리키는 포인터를 갖추고, 상기 메모리로부터 판독 어드레스를 지정하여 상기 입력 데이터를 판독하여 상기 신호 처리 모듈에 입력하며, 기록 어드레스를 지정하여 상기 신호 처리 모듈의 상기 출력 데이터를 상기 메모리에 출력하고,
    상기 CPU는, 제1 태스크를 실행 중에 제2 태스크의 우선 처리가 요구되었을 때, 상기 포인터가 유지하는 값을 저장시킨 후, 상기 신호 처리부에 상기 제2 태스크를 실행시키고, 상기 제2 태스크가 완료됐을 때, 상기 저장시킨 포인터의 값을 복귀시키며, 상기 복귀한 포인터의 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터를 저장해야 할 상기 메모리 상의 어드레스를 구하여 상기 기록 어드레스를 설정하고, 상기 다음으로 출력해야 할 출력 데이터를 산출하기 위해서 상기 신호 처리부에 입력할 필요가 있는 모든 입력 데이터 중 선두의 입력 데이터가 저장되어 있는 어드레스를 구하여 상기 판독 어드레스를 설정하는, 반도체 장치.
  10. 제 9 항에 있어서,
    상기 신호 처리 제어부는, 상기 판독 어드레스를 유지하는 판독 어드레스 레지스터와, 상기 기록 어드레스를 유지하는 기록 어드레스 레지스터와, 상기 포인터의 값을 유지하는 포인터 레지스터를 갖추고,
    상기 CPU는, 상기 우선 처리가 요구되었을 때, 상기 포인터 레지스터의 제1 값을 상기 메모리에 저장하고,
    상기 제2 태스크가 완료됐을 때, 상기 제1 값을 상기 메모리로부터 상기 포인터 레지스터에 복귀하며, 출력 위치 함수에 의해, 상기 제1 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 상기 출력 스트림에서의 위치 정보를 산출하고, 출력 어드레스 함수에 의해, 상기 출력 위치 함수의 출력에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 상기 메모리에서의 어드레스를 산출하여, 상기 기록 어드레스 레지스터에 기록하고, 입력 위치 함수에 의해, 상기 제1 값에 근거하여 상기 선두의 입력 데이터의 상기 입력 스트림에서의 위치 정보를 산출하고, 입력 어드레스 함수에 의해, 상기 선두의 입력 데이터의 상기 메모리에서의 어드레스를 산출하여, 상기 판독 어드레스 레지스터에 기록하는, 반도체 장치.
  11. 제 9 항에 있어서,
    상기 신호 처리 제어부는, 파라미터 레지스터를 더 갖추고,
    상기 신호 처리 모듈은, 상기 파라미터 레지스터가 유지하는 파라미터에 따라서 신호 처리를 실행하고,
    상기 CPU는, 상기 우선 처리가 요구되었을 때, 상기 파라미터 레지스터가 유지하는 값을 저장하지 않고 파기하며,
    상기 신호 처리 모듈에 상기 제2 태스크를 실행시키기 위한 파라미터를, 상기 파라미터 레지스터에 기록하는, 반도체 장치.
  12. 제 11 항에 있어서,
    상기 파라미터는, 상기 신호 처리 모듈이 실행하는 처리의 처리 내용마다 상기 메모리에 저장되어 있고,
    상기 CPU는, 처리 태스크가 요구되었을 때, 상기 처리 태스크의 처리 내용에 대응하는 상기 파라미터를 상기 메모리로부터 판독하여 상기 파라미터 레지스터에 기록하는, 반도체 장치.
  13. CPU와 메모리와 신호 처리부와 콘텍스트(context) 처리부가 각각 버스에 접속되어 있고,
    상기 신호 처리부는, 신호 처리 모듈과 신호 처리 제어부를 갖추며,
    상기 신호 처리 모듈은, 입력된 복수의 입력 데이터로 이루어진 입력 스트림을 입력하고, 스트림 데이터에 소정의 신호 처리를 실시하여 복수의 출력 데이터로 이루어진 출력 스트림을 출력하며,
    상기 신호 처리 제어부는, 상기 신호 처리 모듈의 처리 경과에 따른 처리 대상 데이터의 스트림 데이터에서의 위치 정보를 가리키는 포인터를 갖추고,
    상기 메모리로부터 판독 어드레스를 지정하여 상기 입력 데이터를 판독하여 상기 신호 처리 모듈에 입력하고,
    기록 어드레스를 지정하여 상기 신호 처리 모듈의 상기 출력 데이터를 상기 메모리에 출력하며,
    상기 콘텍스트 처리부는, 콘텍스트 위치 기억부와 복원부를 갖추고,
    상기 콘텍스트 처리부는, 제1 태스크를 실행 중에 제2 태스크의 우선 처리가 요구되었을 때, 상기 포인터가 유지하는 값을 상기 콘텍스트 위치 기억부에 저장시킨 후, 상기 신호 처리부에 상기 제2 태스크를 실행시키고,
    상기 제2 태스크가 완료됐을 때, 상기 저장시킨 포인터의 값을 복귀시키며,
    상기 복원부는, 상기 복귀한 포인터의 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터를 저장해야 할 상기 메모리 상의 어드레스를 구하여 상기 기록 어드레스를 설정하고, 상기 다음으로 출력해야 할 출력 데이터를 산출하기 위해서 상기 신호 처리부에 입력할 필요가 있는 모든 입력 데이터 중 선두의 입력 데이터가 저장되어 있는 어드레스를 구하여 상기 판독 어드레스를 설정하는, 반도체 장치.
  14. 제 13 항에 있어서,
    상기 신호 처리 제어부는, 상기 판독 어드레스를 유지하는 판독 어드레스 레지스터와, 상기 기록 어드레스를 유지하는 기록 어드레스 레지스터와, 상기 포인터의 값을 유지하는 포인터 레지스터를 갖추고,
    상기 우선 처리가 요구되었을 때, 상기 콘텍스트 처리부는, 상기 우선 처리가 요구되었을 때, 상기 포인터 레지스터의 제1 값을 상기 콘텍스트 기억부에 저장하며, 상기 제2 태스크가 완료됐을 때, 상기 콘텍스트 처리부는, 상기 제1 값을 상기 콘텍스트 기억부로부터 상기 포인터 레지스터에 복귀하고,
    상기 복원부는, 출력 위치 함수에 의해, 상기 제1 값에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 상기 출력 스트림에서의 위치 정보를 산출하고, 출력 어드레스 함수에 의해, 상기 출력 위치 함수의 출력에 근거하여, 상기 제1 태스크에서 다음으로 출력해야 할 출력 데이터의 상기 메모리에서의 어드레스를 산출하여, 상기 기록 어드레스 레지스터에 기록하며,
    입력 위치 함수에 의해, 상기 제1 값에 근거하여 상기 선두의 입력 데이터의 상기 입력 스트림에서의 위치 정보를 산출하고, 입력 어드레스 함수에 의해, 상기 선두의 입력 데이터의 상기 메모리에서의 어드레스를 산출하여, 상기 판독 어드레스 레지스터에 기록하는, 반도체 장치.
  15. 제 13 항에 있어서,
    상기 신호 처리 제어부는, 파라미터 레지스터를 더 갖추고,
    상기 신호 처리 모듈은, 상기 파라미터 레지스터가 유지하는 처리 파라미터에 따라서 신호 처리를 실행하고,
    상기 복원부는, 상기 우선 처리가 요구되었을 때, 상기 파라미터 레지스터가 유지하는 값을 저장하지 않고 파기하며, 상기 신호 처리 모듈에 상기 제2 태스크를 실행시키기 위한 처리 파라미터를, 상기 파라미터 레지스터에 기록하는, 반도체 장치.
  16. 제 15 항에 있어서,
    상기 처리 파라미터는, 상기 신호 처리 모듈이 실행하는 처리의 내용마다 상기 메모리에 저장되어 있고,
    상기 복원부는, 태스크가 요구되었을 때, 상기 태스크의 처리 내용에 대응하는 상기 처리 파라미터를 상기 메모리로부터 상기 파라미터 레지스터에 전송하는, 반도체 장치.
  17. 제 13 항에 있어서,
    상기 콘텍스트 처리부는,
    제1 태스크를 실행 중에 제2 태스크의 우선 처리가 요구되었을 때, 상기 제1 태스크의 콘텍스트 번호와 상기 포인터가 유지하는 값을 대응지어 상기 콘텍스트 위치 기억부에 저장시키며,
    상기 제2 태스크가 완료됐을 때, 상기 복원부는, 저장한 상기 콘텍스트 번호와 복귀한 상기 포인터의 값에 근거하여, 상기 기록 어드레스와 상기 판독 어드레스를 설정하는, 반도체 장치.
  18. 제 17 항에 있어서,
    상기 처리 파라미터는, 상기 신호 처리 모듈이 실행하는 처리의 내용마다 상기 메모리에 저장되어 있고,
    상기 복원부는, 상기 우선 처리가 완료됐을 때, 상기 저장한 콘텍스트 번호에 근거하여, 상기 제1 태스크의 처리 내용에 대응하는 상기 처리 파라미터를 상기 메모리로부터 상기 파라미터 레지스터에 전송하는, 반도체 장치.
  19. 제 18 항에 있어서,
    제1 태스크를 실행 중에 제2 태스크의 우선 처리가 요구되었을 때, 상기 콘텍스트 처리부는, 상기 제1 태스크의 콘텍스트 번호와 상기 포인터가 유지하는 제1 태스크의 포인터값을 대응지어 상기 콘텍스트 위치 기억부에 저장시키고,
    상기 제2 태스크를 실행 중에 제3 태스크의 우선 처리가 요구되었을 때, 상기 콘텍스트 처리부는, 상기 제2 태스크의 콘텍스트 번호와 상기 포인터가 유지하는 제2 태스크의 포인터값을 대응지어 상기 콘텍스트 위치 기억부에 저장시키며,
    상기 제3 태스크가 완료됐을 때, 상기 복원부는, 상기 제2 태스크의 콘텍스트 번호에 근거하여 상기 제2 태스크의 처리 파라미터를 복귀하고, 상기 제2 태스크의 포인터의 값을 복원하며,
    상기 제2 태스크가 완료됐을 때, 상기 복원부는, 상기 제1 태스크의 콘텍스트 번호에 근거하여 상기 제1 태스크의 처리 파라미터를 복귀하고, 상기 제1 태스크의 포인터의 값을 복원하는, 반도체 장치.
KR1020130010355A 2012-02-17 2013-01-30 신호 처리 장치 및 반도체 장치 KR20130095206A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2012-032685 2012-02-17
JP2012032685A JP5848153B2 (ja) 2012-02-17 2012-02-17 信号処理装置及び半導体装置

Publications (1)

Publication Number Publication Date
KR20130095206A true KR20130095206A (ko) 2013-08-27

Family

ID=48981868

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130010355A KR20130095206A (ko) 2012-02-17 2013-01-30 신호 처리 장치 및 반도체 장치

Country Status (4)

Country Link
US (2) US9195319B2 (ko)
JP (1) JP5848153B2 (ko)
KR (1) KR20130095206A (ko)
CN (1) CN103336716B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6324222B2 (ja) * 2014-06-04 2018-05-16 キヤノン株式会社 撮像装置、その制御方法、および制御プログラム
US10313683B2 (en) * 2014-08-30 2019-06-04 Apple Inc. Video encoder with context switching
JP6239078B1 (ja) * 2016-11-04 2017-11-29 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および読出し方法
JP2018103383A (ja) * 2016-12-22 2018-07-05 キヤノン株式会社 画像処理装置およびその画像処理装置の制御方法またはプログラム
US10521880B2 (en) * 2017-04-17 2019-12-31 Intel Corporation Adaptive compute size per workload
TWI684860B (zh) * 2018-10-15 2020-02-11 慧榮科技股份有限公司 用來進行讀取加速之方法以及資料儲存裝置及其控制器
KR20200129700A (ko) * 2019-05-09 2020-11-18 에스케이하이닉스 주식회사 컨트롤러 및 이를 포함하는 메모리 시스템

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2705804B1 (fr) * 1993-05-27 1995-08-11 Sgs Thomson Microelectronics Architecture de processeur multi-tâches.
EP0863462B8 (en) * 1997-03-04 2010-07-28 Panasonic Corporation Processor capable of efficiently executing many asynchronous event tasks
US6128641A (en) * 1997-09-12 2000-10-03 Siemens Aktiengesellschaft Data processing unit with hardware assisted context switching capability
US6671762B1 (en) * 1997-12-29 2003-12-30 Stmicroelectronics, Inc. System and method of saving and restoring registers in a data processing system
US7055151B1 (en) * 1998-04-03 2006-05-30 Applied Micro Circuits Corporation Systems and methods for multi-tasking, resource sharing and execution of computer instructions
US6895583B1 (en) * 2000-03-10 2005-05-17 Wind River Systems, Inc. Task control block for a computing environment
GB2372847B (en) * 2001-02-19 2004-12-29 Imagination Tech Ltd Control of priority and instruction rates on a multithreaded processor
US7434222B2 (en) * 2001-12-20 2008-10-07 Infineon Technologies Ag Task context switching RTOS
US20060044420A1 (en) 2004-08-26 2006-03-02 Matsushita Electric Industrial Co., Ltd. Image pickup apparatus
JP2006197548A (ja) 2004-08-26 2006-07-27 Matsushita Electric Ind Co Ltd 撮像装置
US20090196356A1 (en) 2005-09-14 2009-08-06 Mitsunori Houki Multi-stream decoder apparatus
CN101212676B (zh) * 2006-12-29 2010-06-02 北京展讯高科通信技术有限公司 高效并行cabac解码方法及其装置
JP2009086789A (ja) 2007-09-28 2009-04-23 Hitachi Ltd 並列型画像処理装置

Also Published As

Publication number Publication date
CN103336716B (zh) 2017-11-14
US20160070592A1 (en) 2016-03-10
JP5848153B2 (ja) 2016-01-27
US9195319B2 (en) 2015-11-24
US20130215020A1 (en) 2013-08-22
JP2013171296A (ja) 2013-09-02
CN103336716A (zh) 2013-10-02

Similar Documents

Publication Publication Date Title
KR20130095206A (ko) 신호 처리 장치 및 반도체 장치
US8464025B2 (en) Signal processing apparatus with signal control units and processor units operating based on different threads
US20060140498A1 (en) Apparatus and method for processing an image
JP2008054222A (ja) 画像データバッファ装置及び画像転送処理システム
US9460489B2 (en) Image processing apparatus and image processing method for performing pixel alignment
JP5679763B2 (ja) 半導体集積回路及び全周囲映像システム
US20110102465A1 (en) Image processor, electronic device including the same, and image processing method
KR20070067093A (ko) 이미지 프로세싱에서의 에지 핸들링을 위한 장치 및 방법
CN102209191A (zh) 执行图像信号处理的方法及用于执行图像信号处理的装置
US10877811B1 (en) Scheduler for vector processing operator allocation
US20120274856A1 (en) Frame List Processing for Multiple Video Channels
US20100097481A1 (en) Photographing apparatus, method of controlling the same, and recording medium having recorded thereon computer program to implement the method
US10747692B2 (en) Image processing accelerator
US20100053166A1 (en) Information processing apparatus, and super-resolution achievement method and program
JP2008172410A (ja) 撮像装置、画像処理装置、画像処理方法、画像処理方法のプログラム及び画像処理方法のプログラムを記録した記録媒体
JPH07184214A (ja) 画像処理システム
US11216307B1 (en) Scheduler for vector processing operator readiness
US6614438B1 (en) Data-processing arrangement for processing different types of data
JP2003046939A (ja) 電子カメラ、および電子カメラ用の制御ic
US20140055498A1 (en) Method for scaling video data, and an arrangement for carrying out the method
US20060082580A1 (en) Method and apparatus for triggering frame updates
JP5379223B2 (ja) 情報処理装置
JP2020112998A (ja) 情報処理装置及びメモリ制御方法
US20100211623A1 (en) Filter processing module and semiconductor device
JPH04349496A (ja) 画像処理装置及びその方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application