KR20060042002A - 메모리 관리 방법, 화상 처리 장치 및 메모리 관리 프로그램 - Google Patents

메모리 관리 방법, 화상 처리 장치 및 메모리 관리 프로그램 Download PDF

Info

Publication number
KR20060042002A
KR20060042002A KR20050012807A KR20050012807A KR20060042002A KR 20060042002 A KR20060042002 A KR 20060042002A KR 20050012807 A KR20050012807 A KR 20050012807A KR 20050012807 A KR20050012807 A KR 20050012807A KR 20060042002 A KR20060042002 A KR 20060042002A
Authority
KR
South Korea
Prior art keywords
memory area
memory
image
image processing
information
Prior art date
Application number
KR20050012807A
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 KR20060042002A publication Critical patent/KR20060042002A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B43WRITING OR DRAWING IMPLEMENTS; BUREAU ACCESSORIES
    • B43LARTICLES FOR WRITING OR DRAWING UPON; WRITING OR DRAWING AIDS; ACCESSORIES FOR WRITING OR DRAWING
    • B43L19/00Erasers, rubbers, or erasing devices; Holders therefor
    • B43L19/0056Holders for erasers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06CDIGITAL COMPUTERS IN WHICH ALL THE COMPUTATION IS EFFECTED MECHANICALLY
    • G06C1/00Computing aids in which the computing members form at least part of the displayed result and are manipulated directly by hand, e.g. abacuses or pocket adding devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/127Prioritisation of hardware or computational resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Input (AREA)
  • Memory System (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

본 발명은, 1개의 화상 메모리를 공용하여 인코드 및 디코드를 병행하여 실행하는 경우에, 처리 대상의 화상 사이즈의 변경에 대하여 유연하게 대응하는 것을 가능하게 하는 것을 목적으로 한다. 이를 위해, 메모리 확보 처리부(52)는, 인코드 및 디코드 각각의 처리를 위해 개별적으로 지정되는 화상 사이즈 및 화상 갯수의 입력을 받아서, 지정된 화상 사이즈에 대응하는 메모리 영역을 화상 메모리 상의 빈 영역에 화상 갯수분만큼 개별적으로 할당하여 확보하고, 확보한 메모리 영역을 나타내는 어드레스를 출력한다. 메모리 영역 관리부(51)는, 확보된 각 메모리 영역의 식별 정보와, 메모리 영역에 액세스하기 위한 액세스 정보의 대응 관계를 메모리 영역마다 기억한 메모리 영역 정보를 보유함과 함께, 각 메모리 영역에 대한 인코더 및 디코더로부터의 사용 요구 및 반환 요구를 접수하여, 각 메모리 영역의 사용 상태를 메모리 영역 정보를 이용하여 관리한다.
CPU, 화상 메모리, 디코더, , 메모리 I/F, 메모리 제어부

Description

메모리 관리 방법, 화상 처리 장치 및 메모리 관리 프로그램{MEMORY MANAGEMENT METHOD, IMAGE PROCESSING APPARATUS AND MEMORY MANAGEMENT PROGRAM}
도 1은 본 발명의 제1 실시예에 따른 화상 처리 장치의 주요부 구성을 도시하는 블록도.
도 2는 메모리 제어부의 내부 구성을 도시하는 블록도.
도 3은 확보한 메모리 영역의 메모리 영역 관리부에 의한 관리 방법을 설명하기 위한 도면.
도 4는 화상 사이즈 요소 및 화상 메모리 요소의 데이터 구조를 도시하는 도면.
도 5는 메모리 영역을 확보할 때의 메모리 영역 관리부의 처리의 흐름을 설명하는 흐름도.
도 6은 확보된 메모리 영역을 인코더 또는 디코더에 제공할 때의 메모리 영역 관리부의 처리의 흐름을 설명하는 흐름도.
도 7은 인코더 또는 디코더로부터 메모리 영역이 반환될 때의 메모리 영역 관리부의 처리의 흐름을 설명하는 흐름도.
도 8은 메모리 영역을 해방할 때의 메모리 영역 관리부의 처리의 흐름을 설명하는 흐름도.
도 9는 룩업 테이블의 구성예를 도시하는 도면.
도 10은 룩업 테이블 설정부에 의한 메모리 영역의 관리 방법을 설명하기 위한 도면.
도 11은 룩업 테이블 요소의 데이터 구조를 도시하는 도면.
도 12는 메모리 영역이 확보될 때의 룩업 테이블 설정부의 처리의 흐름을 설명하는 흐름도.
도 13은 메모리 영역이 해방되는 경우의 룩업 테이블 설정부의 처리의 흐름을 설명하는 흐름도.
도 14는 데이터 포맷의 구성예를 도시하는 도면.
도 15는 데이터 포맷 설정부에 의한 메모리 영역의 관리 방법을 설명하기 위한 도면.
도 16은 데이터 포맷 요소의 데이터 구조를 도시하는 도면.
도 17은 메모리 영역이 확보될 때의 데이터 포맷 설정부의 처리의 흐름을 설명하는 흐름도.
도 18은 메모리 영역이 해방되는 경우의 데이터 포맷 설정부의 처리의 흐름을 설명하는 도면.
도 19는 메모리 확보 처리부 및 메모리 해방 처리부에 의한 메모리 영역의 할당 방법을 설명하기 위한 도면.
도 20은 메모리 확보 처리부 및 메모리 해방 처리부에 의한 이분 트리 구조의 노드 관리 방법을 설명하기 위한 도면.
도 21은 메모리 영역이 확보되는 경우의 메모리 확보 처리부의 처리의 흐름을 설명하는 흐름도.
도 22는 메모리 영역이 해방되는 경우의 메모리 해방 처리부의 처리의 흐름을 설명하는 흐름도.
도 23은 본 발명의 제2 실시예에 따른 화상 처리 장치의 주요부 구성을 도시하는 블록도.
도 24는 본 발명의 제3 실시예에 따른 화상 처리 장치의 주요부 구성을 도시하는 블록도.
도 25는 동화상의 인코드와 디코드를 병행하여 실행하는 것이 가능한 화상 처리 장치의 주요부 구성을 도시하는 도면.
〈도면의 주요 부분에 대한 부호의 설명〉
10 : CPU
20 : 인코더
30 : 디코더
40 : 화상 메모리
41 : 메모리 I/F
41a : 룩업 테이블
41b : 데이터 포맷
50 : 메모리 제어부
51 : 메모리 영역 관리부
52 : 메모리 확보 처리부
53 : 메모리 해방 처리부
54 : 룩업 테이블 설정부
55 : 데이터 포맷 설정부
56 : CPU I/F
57 : 인코더 I/F
58 : 디코더 I/F
본 발명은, 복수의 화상 처리 수단에 의해 1개의 화상 메모리를 작업 영역으로서 공용하여, 각 화상 처리 수단에 의한 처리를 병행하여 실행하기 위한 메모리 관리 방법, 이 메모리 관리 방법을 이용한 화상 처리 장치, 및 메모리 관리 프로그램에 관한 것이다.
최근, MPEG(Moving Picture Experts Group) 방식 등의 화상 압축 기술의 진보 등에 따른, 화상 신호를 디지털화하여 취급하는 것이 일반적으로 되어 있다. 예를 들면, 동화상을 촬상하여 디지털 데이터로서 기록하는 디지털 비디오 카메라 등이 널리 보급되어 있다.
또한, 최근 디지털 비디오 카메라 중에는, 자기 테이프와, 가반형 반도체 메모리로 이루어지는 메모리 카드와 같이, 2 종류의 기록 매체를 구비하는 것이 있 다. 이러한 디지털 비디오 카메라에서는, 동화상의 인코드와 디코드나, 2 계통의 인코드 혹은 디코드를 병행하여 실행하는 기능을 구비하는 것이 많다.
예를 들면, 촬상 중인 동화상을 상이한 화상 사이즈나 압축률, 포맷으로 각각의 기록 매체에 동시에 기록하는 기능을 구비하는 것이 있다. 이 경우, 화상 사이즈가 상이한 2 계통의 동화상의 인코드가 병행하여 실행된다. 또한, 자기 테이프에 기록된 동화상을 일단 디코드하고, 화상 사이즈를 작게 하여 재차 인코드하여 메모리 카드에 기록하는 기능을 구비하는 것이 있다. 이 경우, 디코드와 인코드가 병행하여 실행된다.
도 25는, 일례로서, 동화상의 인코드와 디코드를 병행하여 실행하는 것이 가능한 화상 처리 장치의 주요부 구성을 도시하는 도면이다.
도 25에 도시하는 화상 처리 장치는, 예를 들면 동화상 데이터 및 음성 데이터의 입력을 받아서 이들을 MPEG 등의 압축 부호화 방식으로 인코드하고, 각종 기록 매체에 기록하는 기능과, 기록 매체의 기록 데이터를 디코드하고, 동화상 및 음성을 재생 출력하는 기능을 구비하는 화상 기록 재생 장치나 촬상 장치 등에 설치된다. 이 화상 처리 장치에서는, 동화상 및 음성의 인코드와 디코드를 병행하여 실행하는 것이 가능하게 되어 있으며, 이들 처리가 OS(Operating System)를 탑재하지 않은 소위 내장형 시스템에 의해 실행되도록 되어 있다.
이 화상 처리 장치는, 도 25에 도시한 바와 같이, 인코드/디코드의 제어를 위한 CPU(11), 인코더(21), 디코더(31), 및 처리 중인 화상 데이터의 일시 보존을 위해 인코더(21) 및 디코더(31)에 의해 공용되는 화상 메모리(40)를 구비하고 있 다.
CPU(11)는, 외부의 호스트 컨트롤러와 통신하여, 이 호스트 컨트롤러로부터의 정보에 따라 인코더(21) 및 디코더(31)의 처리를 제어한다. 구체적으로 설명하면, 호스트 컨트롤러로부터, 인코드/디코드의 명령, 생성하는 화상의 사이즈, 확보할 메모리 영역의 수 등의 정보를 수취하여, 대응하는 인코더(21) 또는 디코더(31)에 이들 정보를 출력하고, 처리를 개시시킨다.
인코더(21)는, 입력된 동화상 및 음성의 디지털 데이터에 대하여, MPEG 방식 등의 소정의 압축 부호화 방식에 따라 압축 부호화 처리를 실시하여, 동화상 및 음성의 부호화 스트림을 생성하는 처리를 실행한다. 또한, 디코더(31)는, 입력된 동화상 및 음성의 부호화 스트림에 대하여 신장 복호화 처리를 실시한다. 인코더(21) 및 디코더(31)는, 동화상 데이터의 인코드, 디코드를 각각 실행할 때에, 화상 메모리(40)에 액세스하여, 처리 중인 화상 데이터를 화상 메모리(40)에 일시적으로 저장한다.
화상 메모리(40)는, 예를 들면 SDRAM(Synchronous Dynamic Random Access Memory) 등의 반도체 메모리로 이루어지며, 그 내부에, 외부로부터의 액세스를 받는 메모리 I/F(41)를 구비하고 있다. 메모리 I/F(41)는, 인코더(21) 및 디코더(31)로부터 공급된 화상 데이터를, 화상 메모리(40)의 지정된 영역에 저장한다. 또한, 인코더(21) 및 디코더(31)로부터 지정된 판독 어드레스에 따라, 화상 메모리(40)로부터 화상 데이터를 판독하여 출력한다.
이러한 화상 처리 장치에서, 동화상의 인코드가 행해지는 경우에는, CPU(11) 는, 호스트 컨트롤러로부터의 정보에 기초하여, 인코더(21)에 대하여 인코드의 개시를 명령함과 함께, 화상 사이즈나, 확보할 메모리 영역에 대응하는 화상의 갯수를 지정한다. 인코더(21)는, 동화상 데이터의 입력을 받으면, CPU(11)로부터의 정보에 따라, 화상 메모리(40)에 대하여 화상을 저장하는 메모리 영역을 확보하고, 대응하는 물리 어드레스를 메모리 I/F(41)에 지정하며, 처리 중인 화상 데이터를 그 메모리 영역에 순차 저장하면서 인코드를 실행한다.
또한, 동화상의 디코드가 행해지는 경우에는, 마찬가지로, CPU(11)로부터 디코더(31)에 대하여 화상 사이즈나 화상의 갯수가 디코더(31)에 대하여 지정되며, 부호화 스트림의 입력을 받은 디코더(31)는, CPU(11)에 의해 지정된 갯수에 대응하는 메모리 영역을 화상 메모리(40)에 확보하고, 대응하는 물리 어드레스를 메모리 I/F(41)에 지정하며, 처리 중인 화상 데이터를 그 메모리 영역에 순차 저장하면서 디코드를 실행한다.
또한, 음성의 인코드 및 디코드가 행해질 때에는, 인코더(21) 및 디코더(31)는, 호스트 컨트롤러로부터 CPU(11)를 통해 공급되는 정보에 따라, 입력되는 음성 데이터나 부호화 스트림을 순차 처리해 간다. 이 때에, 처리 중인 음성 데이터를 화상 메모리(40)에 일시적으로 저장하도록 하여도 된다.
덧붙여서, 1 계통의 데이터의 부호화 처리와, 다른 1 계통의 데이터의 복호 처리를 병행하여 실행하는 것이 가능한 종래의 장치로서, 이하와 같은 화상의 복호 장치가 있었다. 이 복호 장치에서는, 데이터의 부호화 및 복호가 공용하여 행해지는 역변환 회로가 설치되어 있다. 그리고, 고능률 부호화된 화상 신호로서 입력되 며 가변 길이 복호 회로 및 역양자화 회로를 경유한 신호와, 입력된 별도의 계통의 화상 신호가 다중화 회로에 의해 선택되어 역변환 회로에 입력되고, 전자의 신호는 역변환 회로에 의해 복호되어 출력되며, 후자의 화상 신호는 역변환 회로에 의해 부호화된 후, 또한 양자화 회로 및 가변 길이 부호화 회로를 통해 출력된다. 여기서, 역변환 회로를 실시간 속도의 2배 또는 그 이상의 속도로 동작시킴으로써, 역변환 회로에서의 복호 기능과 부호화 기능을 전환하여 사용하여, 복호 처리와 부호화 처리를 병행하고 실행하는 것이 가능하게 된다(예를 들면, 특허 문헌 1 참조).
[특허 문헌 1]
일본 특개평9-322121호 공보(단락 번호 〔0029〕∼〔0032〕, 도 5)
그런데, 복수의 기록 매체를 구비하는 화상 기록 재생 장치에서는, 각 기록 매체를 이용한 동화상 데이터의 기록 또는 재생을 행하고 있는 도중에, 인코더 또는 디코더의 처리 대상으로 되는 화상 사이즈를 변경 가능하게 하는 요구가 있다. 예를 들면, 자기 테이프와 메모리 카드를 구비하는 디지털 비디오 카메라에서, 촬상 화상을 각 기록 매체에 기록하고 있는 도중에, 메모리 카드로의 기록 동작만을 중단하고, 기록 화상의 화상 사이즈를 변경하여 기록 동작을 재개시키는 경우 등이 상정된다.
그러나, 도 25에 도시한 종래의 화상 처리 장치에서는, 인코더(21) 및 디코더(31)에 의해 화상 메모리(40)에 확보되는 메모리 영역의 크기나 수는, 호스트 컨트롤러로부터 CPU(11)를 통해 지정되는 처리 대상으로 하는 화상 사이즈에 따라, 미리 정해져 있다. 이 때문에, 일단 인코드 및 디코드가 개시되면, 화상 메모리(40) 내에 메모리 영역이 고정적으로 확보되고, 모든 인코드 및 디코드의 동작을 정지시키지 않는 한, 화상 사이즈의 설정을 변경할 수 없었다. 또한, 인코더(21)나 디코더(31)는, 확보한 메모리 영역을 그 물리 어드레스를 항상 인식하여 관리할 필요가 있기 때문에, 화상 사이즈 등을 변경하였을 때에 메모리 영역의 관리가 번잡해져서, 화상 사이즈의 변경에 대하여 유연하게 대응할 수 없는 것이 문제이었다.
본 발명은 이러한 점을 감안하여 이루어진 것으로, 1개의 화상 메모리를 공용하여 인코드 및 디코드를 병행하여 실행하는 경우에, 처리 대상의 화상 사이즈의 변경에 대하여 유연하게 대응하는 것이 가능한 메모리 관리 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명의 다른 목적은, 1개의 화상 메모리를 공용하여 인코드 및 디코드를 병행하여 실행하는 경우에, 처리 대상의 화상 사이즈의 변경에 대하여 유연하게 대응하는 것이 가능한 화상 처리 장치를 제공하는 것이다.
또한, 본 발명의 다른 목적은 1개의 화상 메모리를 공용하여 인코드 및 디코드를 병행하여 실행하는 경우에, 처리 대상의 화상 사이즈의 변경에 대하여 유연하게 대응하는 것이 가능한 메모리 관리 프로그램을 제공하는 것이다.
본 발명에서는 상기 과제를 해결하기 위해, 복수의 화상 처리 수단에 의해 1개의 화상 메모리를 작업 영역으로서 공용하여, 상기 각 화상 처리 수단에 의한 처 리를 병행하여 실행하기 위한 메모리 관리 방법에서, 메모리 영역 확보 수단이, 복수의 상기 화상 처리 수단의 각각의 처리를 위해 개별적으로 지정되는 화상 사이즈 및 화상 갯수의 입력을 받아서, 상기 화상 사이즈에 대응하는 메모리 영역을 상기 화상 메모리 상의 빈 영역에 상기 화상 갯수분만큼 개별적으로 할당하여 확보하고, 확보한 상기 메모리 영역을 나타내는 어드레스를 출력하는 메모리 영역 확보 단계와, 메모리 영역 관리 수단이, 상기 메모리 영역 확보 단계에서 확보된 상기 각 메모리 영역의 식별 정보와, 적어도 상기 어드레스를 포함하는, 상기 메모리 영역에 액세스하기 위한 액세스 정보의 대응 관계를, 상기 메모리 영역마다 기억한 메모리 영역 정보를 생성하는 메모리 영역 정보 생성 단계와, 상기 메모리 영역 관리 수단이, 상기 각 메모리 영역에 대한 상기 각 화상 처리 수단으로부터의 사용 요구 및 반환 요구를 접수하여, 상기 각 메모리 영역의 사용 상태를 상기 메모리 영역 정보를 이용하여 관리하는 메모리 영역 관리 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법이 제공된다.
이러한 메모리 관리 방법에서는, 메모리 영역 확보 수단에 의한 메모리 영역 확보 단계에서, 지정된 화상 사이즈에 대응하는 메모리 영역이, 지정된 화상 갯수분만큼 화상 메모리 상의 빈 영역 내에 개별적으로 확보되기 때문에, 각 메모리 영역은 화상 메모리 상에 화상 갯수분만큼 고정적으로 할당되지 않고, 각각이 개별적으로 분산되어 할당된다. 또한, 메모리 영역 관리 수단에 의한 메모리 영역 정보 생성 단계에서, 확보된 각 메모리 영역의 식별 정보와, 메모리 영역에 액세스하기 위한 액세스 정보의 대응 관계를 메모리 영역마다 기억한 메모리 영역 정보를 생성 한다. 이것에 의해, 메모리 영역 정보를 식별하는 번호 등을 각 화상 처리 수단이 지정함으로써, 대응하는 메모리 영역에 액세스하여, 화상 데이터의 기입 및 판독을 행하는 것이 가능하게 된다. 또한, 메모리 영역 관리 수단에 의한 메모리 영역 관리 단계에서, 각 메모리 영역에 대한 각 화상 처리 수단으로부터의 사용 요구 및 반환 요구를 접수하여, 각 메모리 영역의 사용 상태를 메모리 영역 정보를 이용하여 관리함으로써, 각 화상 처리 수단은, 메모리 영역을 사용할 때에, 대응하는 화상 메모리 내의 어드레스 등을 인식하여 사용 상태를 관리할 필요가 없어진다.
또한, 본 발명에서는, 복수의 화상 처리 수단에 의해 1개의 화상 메모리를 작업 영역으로서 공용하여, 상기 각 화상 처리 수단에 의한 처리를 병행하여 실행하는 것이 가능한 화상 처리 장치에서, 복수의 상기 화상 처리 수단의 각각의 처리를 위해 개별적으로 지정되는 화상 사이즈 및 화상 갯수의 입력을 받아서, 상기 화상 사이즈에 대응하는 메모리 영역을 상기 화상 메모리 상의 빈 영역에 상기 화상 갯수분만큼 개별적으로 할당하여 확보하고, 확보한 상기 메모리 영역을 나타내는 어드레스를 출력하는 메모리 영역 확보 수단과, 상기 메모리 영역 확보 수단에 의해 확보된 상기 각 메모리 영역의 식별 정보와, 적어도 상기 어드레스를 포함하는, 상기 메모리 영역에 액세스하기 위한 액세스 정보의 대응 관계를, 상기 메모리 영역마다 기억한 메모리 영역 정보를 보유함과 함께, 상기 각 메모리 영역에 대한 상기 각 화상 처리 수단으로부터의 사용 요구 및 반환 요구를 접수하여, 상기 각 메모리 영역의 사용 상태를 상기 메모리 영역 정보를 이용하여 관리하는 메모리 영역 관리 수단을 갖는 것을 특징으로 하는 화상 처리 장치가 제공된다.
여기서, 메모리 영역 확보 수단은, 지정된 화상 사이즈에 대응하는 메모리 영역을 지정된 화상 갯수분만큼 화상 메모리 상의 빈 영역 내에 개별적으로 확보하기 때문에, 각 메모리 영역은, 화상 메모리 상에 화상 갯수분만큼 고정적으로 할당되지 않고, 각각이 개별적으로 분산되어 할당된다. 또한, 메모리 영역 관리 수단은, 확보된 각 메모리 영역의 식별 정보와, 메모리 영역에 액세스하기 위한 액세스 정보의 대응 관계를 메모리 영역마다 기억한 메모리 영역 정보를 생성한다. 이것에 의해, 메모리 영역 정보를 식별하는 번호 등을 각 화상 처리 수단이 지정함으로써, 대응하는 메모리 영역에 액세스하여, 화상 데이터의 기입 및 판독을 행하는 것이 가능하게 된다. 또한, 각 메모리 영역에 대한 각 화상 처리 수단으로부터의 사용 요구 및 반환 요구를 접수하여, 각 메모리 영역의 사용 상태를 메모리 영역 정보를 이용하여 관리함으로써, 각 화상 처리 수단은, 메모리 영역을 사용할 때에, 대응하는 화상 메모리 내의 어드레스 등을 인식하여 사용 상태를 관리할 필요가 없어진다.
〈실시예〉
이하, 본 발명의 실시예를 도면을 참조하여 상세히 설명한다.
[제1 실시예의 구성]
이하의 제1 실시예에서는, 동화상 및 음성의 신호를 소정의 압축 부호화 방식에 따라 인코드/디코드하는 화상 처리 장치에, 본 발명을 적용한 경우를 상정한다. 도 1은, 본 발명의 제1 실시예에 따른 화상 처리 장치의 주요부 구성을 도시하는 블록도이다.
도 1에 도시하는 화상 처리 장치는, 예를 들면 동화상 데이터 및 음성 데이터의 입력을 받아서 이들을 MPEG 등의 압축 부호화 방식으로 인코드하고, 각종 기록 매체에 기록하는 기능과, 기록 매체의 기록 데이터를 디코드하고, 동화상 및 음성을 재생 출력하는 기능을 구비하는 화상 기록 재생 장치나 촬상 장치 등에 설치된다. 이 화상 처리 장치에서는, 동화상 및 음성의 인코드와 디코드를 병행하여 실행하는 것이 가능하게 되어 있으며, 이들 처리가 OS를 탑재하지 않은 소위 내장형 시스템에 의해 실행되도록 되어 있다.
이 화상 처리 장치는, 도 1에 도시한 바와 같이, 인코드/디코드의 제어를 위한 CPU(10), 인코더(20), 디코더(30), 처리 중인 화상 데이터의 일시 보존을 위해 인코더(20) 및 디코더(30)에 의해 공용되는 화상 메모리(40), 및 화상 메모리(40)의 기입/판독을 제어하는 메모리 제어부(50)를 구비하고 있다.
CPU(10)는, 외부의 호스트 컨트롤러와 통신하여, 이 호스트 컨트롤러로부터의 정보에 따라, 인코더(20), 디코더(30) 및 메모리 제어부(50)의 동작을 제어한다. 구체적으로 설명하면, 예를 들면, 호스트 컨트롤러에게 지시된 화상 사이즈나, 확보할 메모리 영역의 수를 메모리 제어부(50)에 통지함과 함께, 이 화상 사이즈에서의 인코드/디코드의 실행을 인코더(20) 및 디코더(30)에 지시한다. 또한, 인코더(20) 및 디코더(30)로부터의 화상 메모리(40)에 대한 기입/판독 요구를 메모리 제어부(50)에 통지하고, 화상 데이터가 기입된 메모리 영역을 나타내는 식별 ID를 인코더(20) 및 디코더(30)와 메모리 제어부(50) 사이에서 전송한다.
인코더(20)는, 입력된 동화상 및 음성의 디지털 데이터에 대하여, MPEG 방식 등의 소정의 압축 부호화 방식에 따라 압축 부호화 처리를 실시하여, 동화상 및 음성의 부호화 스트림을 생성한다. 또한, 디코더(30)는, 입력된 동화상 및 음성의 부호화 스트림에 대하여 신장 복호화 처리를 실시한다. 인코더(20) 및 디코더(30)는, 동화상의 인코드, 디코드를 각각 실행할 때에, 메모리 제어부(50)를 통해 화상 메모리(40)에 액세스하여, 처리 중인 화상 데이터를 화상 메모리(40)에 일시적으로 저장한다.
화상 메모리(40)는, 예를 들면 SDRAM 등의 반도체 메모리로 이루어지며, 그 내부에, 외부로부터의 액세스를 접수하는 메모리 I/F(41)를 구비하고 있다. 메모리 I/F(41)는, 화상 메모리(40)의 하드웨어 I/F를 메모리 제어부(50)에 제공하며, 메모리 제어부(50)로부터 어드레스 및 화상 사이즈의 설정을 받아서, 인코더(20) 및 디코더(30)로부터 메모리 제어부(50)를 통해 공급된 화상 데이터를, 화상 메모리(40) 내의 대응하는 영역에 저장한다. 또한, 메모리 제어부(50)로부터 지정된 영역의 화상 데이터를 판독하고, 메모리 제어부(50)를 통해 인코더(20) 및 디코더(30)로 출력한다. 덧붙여서, 메모리 I/F(41)는, 후술하는 바와 같이, 룩업 테이블 및 데이터 포맷을 이용하여, 화상 메모리(40)에의 데이터의 기입/판독을 제어한다.
메모리 제어부(50)는, 인코더(20) 및 디코더(30)로부터의 화상 메모리(40)에 대한 액세스를 일원적으로 관리하는 기능 블록이다. 메모리 제어부(50)는, 인코드나 디코드가 실행될 때에, 화상 사이즈나 확보할 메모리 영역의 수의 정보를 CPU(10)로부터 수취하고, 이들 정보에 기초하여 화상 메모리(40) 내의 메모리 영역을 확보한다. 그리고, 인코더(20) 및 디코더(30)로부터 공급된 화상 메모리(40)에 저장하고, 그 저장 영역을 나타내는 식별 ID를, CPU(10)를 통해 인코더(20) 및 디코더(30)에 통지한다. 또한, 인코더(20) 및 디코더(30)로부터 CPU(10)를 통해 식별 ID가 지정되면, 식별 ID에 따른 화상 메모리(40) 상의 메모리 영역으로부터 화상 데이터를 판독하여, 인코더(20) 및 디코더(30)로 출력한다.
이러한 화상 처리 장치에서, 동화상의 인코드가 행해지는 경우에는, CPU(10)는, 호스트 컨트롤러로부터의 정보에 기초하여, 인코더(20)에 대하여 인코드의 개시를 명령함과 함께, 화상 사이즈나, 확보할 메모리 영역에 대응하는 화상의 갯수를 메모리 제어부(50)에 지정한다. 메모리 제어부(50)는, CPU(10)로부터의 정보에 따라, 인코드에 필요한 메모리 영역을 화상 메모리(40)에 확보한다.
인코더(20)는, 동화상 데이터의 입력을 받으면, 처리 중인 화상 데이터를 메모리 제어부(50)를 통해 화상 메모리(40)에 일시적으로 저장하며, 또한 적절하게 판독하면서 인코드를 행한다. 화상 데이터를 저장할 때에는, 인코더(20)로부터의 요구가 CPU(10)를 통해 메모리 제어부(50)에 전달되며, 메모리 제어부(50)는 확보한 메모리 영역 중 1개에 인코더(20)로부터의 화상 데이터를 기입하고, 상기 메모리 영역을 나타내는 식별 ID를 CPU(10)를 통해 인코더(20)에 통지한다.
그 후, 화상 메모리(40)로부터 화상 데이터를 판독할 때에는, 인코더(20)는, 판독할 화상 데이터에 대응하는 식별 ID를 CPU(10)를 통해 메모리 제어부(50)에 통지한다. 메모리 제어부(50)는, 식별 ID에 대응하는 화상 메모리(40) 내의 메모리 영역으로부터 화상 데이터를 판독하여, 인코더(20)로 출력한다. 그리고, 호스트 컨트롤러로부터 인코드의 종료가 요구되면, 메모리 제어부(50)는, 인코드를 위해 확보하고 있었던 메모리 영역을 해방하고, 다른 데이터의 기입이 가능한 상태로 설정한다.
동화상의 디코드가 행해지는 경우에도, 상기와 마찬가지의 동작이 행해진다. 즉, 디코드가 개시되면, 메모리 제어부(50)에 의해 필요한 메모리 영역이 확보된다. 그리고, 디코더(30)로부터의 화상 데이터가 메모리 제어부(50)의 제어에 의해 1개의 메모리 영역에 저장되며, 그 메모리 영역의 식별 ID가 디코더(30)에 통지된다. 화상 데이터의 판독 시에는, 디코더(30)로부터 식별 ID가 메모리 제어부(50)에 통지되며, 메모리 제어부(50)는 그 식별 ID에 대응하는 메모리 영역으로부터 화상 데이터를 판독하여, 디코더(30)로 출력한다.
이와 같이, 상기 화상 처리 장치에서는, 인코더(20) 및 디코더(30)가 화상 메모리(40)에 대하여 메모리 제어부(50)를 통해 간접적으로 액세스하는 구성으로 되어 있다. 인코더(20) 및 디코더(30)는, 화상 메모리(40)의 물리 어드레스 대신, 메모리 제어부(50)에 의해 확보되는 메모리 영역의 식별 ID를 이용하여, 화상 데이터의 기입/판독을 요구할 수 있다.
한편, 메모리 제어부(50)는, 인코더(20) 및 디코더(30)의 한쪽 처리가 개시될 때마다, 그 처리를 위해 필요한 화상 메모리(40) 내의 메모리 영역을 그 때마다 확보한다. 이 때, 메모리 제어부(50)는, 화상 메모리(40) 내의 단위 메모리 영역을 노드로 한 이분 트리 구조를 이용하여, 화상 메모리(40) 내의 빈 영역에 메모리 영역을 효율적으로 할당하고, 또한, 화상 메모리(40)의 하드웨어 I/F에 맞추어, 할당한 메모리 영역을 메모리 I/F(41)에 설정한다.
이 때문에, 인코드/디코드 중 적어도 한쪽 처리 대상으로 되는 화상 사이즈가 호스트 컨트롤러로부터의 지시에 의해 변경된 경우에도, 변경된 처리를 위해 확보하고 있었던 메모리 영역을 일단 해방하고 빈 영역으로 설정하며, 그 빈 영역을 변경 후의 화상 사이즈에 대응하는 메모리 영역으로서 용이하게 재이용하는 것이 가능하게 된다. 이와 함께, 화상 사이즈에 따른 메모리 영역의 확보가 메모리 제어부(50)에 따라 일원적으로 제어되어, 인코더(20) 및 디코더(30)는 화상 메모리(40)의 사양이나 물리 어드레스를 항상 인식하지 않고, 처리 중인 화상 데이터의 교환을 행하는 것이 가능하게 된다.
여기서, 인코드/디코드의 처리 대상으로 되는 화상 사이즈가 변경되는 경우란, 인코더(20) 및 디코더(30)에 의한 처리 중에 화상 메모리(40)에 일시적으로 저장되는 화상 데이터의 화상 사이즈에 변경이 발생하는 경우를 의미한다. 예를 들면, 인코드 시에는, 입력된 동화상 데이터에 대하여 인코더(20)가 화상 사이즈를 변화시킨 후, 인코드를 실행하거나, 혹은 화상 사이즈가 변경된 동화상 데이터의 입력을 받아서 인코드를 실행함으로써, 생성되는 부호화 스트림의 화상 사이즈가 변경되는 경우 등이 해당한다. 또한, 디코드 시에는, 디코더(30)에 입력되는 부호화 스트림의 화상 사이즈가 변경되는 경우 등이 해당한다.
다음으로, 도 2는 메모리 제어부(50)의 내부 구성을 도시하는 블록도이다.
도 2에 도시한 바와 같이, 메모리 제어부(50)는 메모리 영역 관리부(51), 메모리 확보 처리부(52), 메모리 해방 처리부(53), 룩업 테이블 설정부(54), 데이터 포맷 설정부(55), CPU I/F(56), 인코더 I/F(57) 및 디코더 I/F(58)를 구비하고 있 다. 덧붙여서, 도 2에서는, 화상 메모리(40)의 메모리 I/F(41)가 구비하는 룩업 테이블(41a) 및 데이터 포맷(41b)도 나타내고 있다.
메모리 영역 관리부(51)는, CPU I/F(56)를 통해 CPU(10)와 통신하여, 메모리 제어부(50) 내의 전체의 동작을 제어한다. 구체적으로 설명하면, CPU(10)로부터 지정된 화상 사이즈 및 갯수에 대응하는 메모리 영역의 확보를, 메모리 확보 처리부(52), 룩업 테이블 설정부(54) 및 데이터 포맷 설정부(55)에 요구하여, 확보된 메모리 영역을 식별 ID를 이용하여 인코더(20) 및 디코더(30)에 제공하고, 그 사용 상태를 관리한다. 또한, 인코더(20) 및 디코더(30)와 화상 메모리(40) 사이의 데이터 전송을 제어한다. 그리고, 인코드/디코드의 처리가 종료하였을 때에, 메모리 해방 처리부(53), 룩업 테이블 설정부(54) 및 데이터 포맷 설정부(55)를 제어하여, 확보하고 있었던 메모리 영역을 해방시킨다.
메모리 확보 처리부(52)는, 메모리 영역 관리부(51)로부터 지정된 화상 사이즈에 대응하는 메모리 영역을 화상 메모리(40) 내의 빈 영역에 할당하고, 그 영역의 어드레스를 산출한다. 구체적으로 설명하면, 메모리 확보 처리부(52)는, 화상 메모리(40) 내의 단위 메모리 영역을 노드로 한 이분 트리 구조를 이용하여, 각 단위 메모리 영역의 할당 상태를 관리한다. 그리고, 메모리 영역 관리부(51)에 지정된 화상 사이즈의 데이터를 저장 가능한 메모리 영역을 빈 영역으로부터 추출하여, 그 영역의 선두 어드레스를 메모리 영역 관리부(51)로 출력한다. 메모리 해방 처리부(53)는, 메모리 영역 관리부(51)로부터 지정된 메모리 영역을 해방하는 처리를 행한다.
룩업 테이블 설정부(54) 및 데이터 포맷 설정부(55)는, 확보된 메모리 영역이 사용 가능하게 되도록, 화상 메모리(40)의 액세스 사양에 맞추어 정보의 설정을 행하는 기능 블록이다. 본 실시예에서는, 메모리 영역의 선두 어드레스와, 그 메모리 영역의 데이터 사이즈를 1차원 또는 2차원의 데이터로서 나타낸 화상 사이즈를 지정함으로써, 화상 메모리(40)의 기입/판독을 행하는 것이 가능하게 되어 있다. 그 때문에, 메모리 I/F(41)는 메모리 영역의 크기에 대응하는 화상 사이즈의 설정을 유지하는 룩업 테이블(41a)과, 메모리 영역의 선두 어드레스와 이것에 대응하는 룩업 테이블(41a) 내의 요소가 대응된 데이터 포맷(41b)을 구비하고 있다.
룩업 테이블 설정부(54)는, 메모리 영역을 확보할 때에, 메모리 영역 관리부(51)로부터 지정된 화상 사이즈를, 메모리 I/F(41)의 룩업 테이블(41a)에 대하여 설정한다.
데이터 포맷 설정부(55)는, 메모리 확보 처리부(52)에 의해 산출된 어드레스를, 메모리 I/F(41)의 데이터 포맷(41b)에 대하여 설정함과 함께, 그 어드레스를 룩업 테이블(41a)에 대응시킨다. 그리고, 화상 메모리(40)에 대한 화상 데이터의 기입/판독 시에, 메모리 영역 관리부(51)로부터 지정되는 정보에 따라, 데이터 포맷(41b) 내의 대응하는 요소를 지정하고, 기입/판독을 메모리 I/F(41)에 대하여 요구한다.
CPU I/F(56)는, CPU(10)과 메모리 영역 관리부(51) 사이에서 정보를 교환하기 위한 I/F 회로이다. 또한, 인코더 I/F(57) 및 디코더 I/F(58)는, 각각 인코더(20) 및 디코더(30)와 메모리 영역 관리부(51) 사이에서 화상 데이터를 교환하기 위한 I/F 회로이다.
[메모리 영역 관리부의 동작]
다음으로, 메모리 제어부(50) 내의 각 부의 동작에 대하여 상술한다. 먼저, 메모리 영역 관리부(51)에 의한 메모리 영역의 관리 방법에 대하여 설명한다.
도 3은, 확보한 메모리 영역의 메모리 영역 관리부(51)에 의한 관리 방법을 설명하기 위한 도면이다.
메모리 영역 관리부(51)는, 도 3에 도시한 바와 같이, 화상 사이즈 요소 및 화상 메모리 요소라는 2개의 요소가 포인터에 의해 접속된 선형 리스트를 이용하여, 메모리 영역을 관리한다.
화상 사이즈 요소는, 1개의 인코더(20) 또는 디코더(30)에 의한 처리의 실행에 대응하여 생성되는 요소이며, 후에 생성된 상이한 화상 사이즈 요소를 포인터에 의해 지시함으로써 구성되는 리스트 구조를 갖고 있다. 1개의 화상 사이즈 요소는, 인코드 또는 디코드의 처리의 개시 시에, CPU(10)에 지정된 화상 사이즈를 설정한 화상 메모리 요소를 이 때 CPU(10)에 지정된 갯수분만큼 구비한다. 즉, 각 화상 메모리 요소는, 인코더(20) 또는 디코더(30)가 화상 메모리(40)에 저장하는 1 픽쳐분의 화상 데이터를 위해 확보되는 메모리 영역에 대응하고 있다.
또한, 1개의 화상 사이즈 요소에서, 화상 데이터가 저장 완료인 화상 메모리 요소와 미저장인 화상 메모리 요소가 포인터를 이용한 리스트 구조를 갖는 액티베이트 리스트(Activate List) 및 니게이트 리스트(Negate List)에 각각 접속된다. 그리고, 인코더(20)로부터 화상 메모리(40)에 대한 1 픽쳐분의 화상 데이터의 기입 이 요구되면, 니게이트 리스트의 선두의 화상 메모리 요소가 액티베이트 리스트의 최후미에 접속되며, 화상 메모리(40)에 기입한 1 픽쳐분의 화상 데이터가 불필요하게 되면, 해당 화상 메모리 요소가 니게이트 리스트의 최후미에 접속된다.
또한, 화상 사이즈 요소는, 액티베이트 리스트의 선두 및 최후미의 화상 메모리 요소를 각각 나타내는 액티베이트 탑(Activate_top) 및 액티베이트 테일(Activate_tail)과, 니게이트 리스트의 선두 및 최후미의 화상 메모리 요소를 각각 나타내는 니게이트 탑(Negate_top) 및 니게이트 테일(Negate_tail)을 항상 인식함으로써, 각 리스트를 관리하고 있다.
도 3의 예에서는, 2개의 화상 사이즈 요소(101a 및 101b)가 생성되어 있다. 본 실시예에서는, 인코더(20) 및 디코더(30)가 각각 1개씩 설치되어 있기 때문에, 화상 사이즈 요소는 최대 2개가 생성된다.
예를 들면, 인코드를 위해 화상 사이즈 요소(101a)가 생성된 것으로 하면, 인코더(20)에 의한 처리를 위해 5개의 화상 메모리 요소(102a∼102c, 103a 및 103b)에 대응하는 메모리 영역이 확보되며, 이들 중, 액티베이트 리스트(102)에 접속된 화상 메모리 요소(102a∼102c)에 대응하는 메모리 영역에는 이미 인코더(20)로부터의 화상 데이터가 저장되며, 니게이트 리스트(103)에 접속된 화상 메모리 요소(103a 및 103b)에 대응하는 메모리 영역은 사용되어 있지 않은 상태로 되어 있다.
또한, 마찬가지로, 디코드를 위해 화상 사이즈 요소(101b)가 생성된 것으로 하면, 디코더(30)에 의한 처리를 위해 4개의 화상 메모리 요소(105a∼105d)에 대응 하는 메모리 영역이 확보되어 있으며, 액티베이트 리스트(104)에는 요소가 존재하지 않고, 니게이트 리스트(105)에 접속된 모든 화상 메모리 요소(105a∼105d)에 대응하는 메모리 영역이 미사용 상태로 되어 있다.
이 도 3의 상태로부터, 예를 들면 디코더(30)에 의한 디코드가 종료되면, 화상 사이즈 요소(101b)와 이것이 구비하는 모든 화상 메모리 요소(105a∼105d)가 소거된다. 이것에 의해, 디코더(30)의 처리를 위해 확보되어 있었던 메모리 영역이 해방된다. 또한, 도 3의 상태로부터, 예를 들면 디코더(30)의 처리 대상의 화상 사이즈를 디코드 도중에 변경하는 경우에는, 일단 화상 사이즈 요소(101b)를 소거한 후, 새로운 화상 사이즈가 설정된 화상 메모리 요소를 구비하는 화상 사이즈 요소를 생성한다. 이러한 설정 변경 동안, 인코더(20)는, 화상 사이즈 요소(101a)가 구비하는 화상 메모리 요소에 대응하는 메모리 영역을 이용하여 인코드를 속행할 수 있다.
도 4는, 화상 사이즈 요소 및 화상 메모리 요소의 데이터 구조를 도시하는 도면이다.
각 화상 사이즈 요소에는 메모리 영역 관리부(51)에 의해 도 4의 (a)에 도시한 바와 같은 데이터가 설정된다. 식별 ID(111)는, 각 화상 사이즈 요소를 식별하는 유니크한 번호이다. 화상 폭(112) 및 화상 높이(113)는, 해당 화상 사이즈 요소가 구비하는 화상 메모리 요소에 설정되는 화상 사이즈를 나타내며, 화상 갯수(114)는 그 화상 메모리 요소의 수를 나타낸다.
또한, 해당 화상 사이즈가 구비하는 화상 메모리 요소를 관리하기 위해, 해 당 화상 사이즈 요소 내의 액티베이트 탑, 액티베이트 테일, 니게이트 탑 및 니게이트 테일로 되어 있는 화상 메모리 요소를 지시하는 포인터(115∼118)가 설정된다. 이들 포인터(115∼118)로서는, 예를 들면 후술하는 화상 메모리 요소의 식별 ID 등이 이용된다. 또한, 해당 화상 사이즈 요소보다 후에 생성된 상이한 화상 사이즈 요소로의 포인터(119)가, 예를 들면 그 화상 사이즈 요소의 식별 ID에 의해 설정된다.
한편, 각 화상 메모리 요소에는, 메모리 영역 관리부(51)에 의해 도 4의 (b)에 도시한 바와 같은 데이터가 설정된다. 식별 ID(121)는, 각 화상 메모리 요소를 식별하는 유니크한 번호이며, 대응하는 메모리 영역에 화상 데이터를 저장하였을 때에 인코더(20) 또는 디코더(30)에 제공되는 것이다. 노드 번호(122)는, 메모리 확보 처리부(52)에 의해 확보된 메모리 영역에 대응하는 번호이다.
또한, 화상 메모리(40) 상에 확보되는 실제의 메모리 영역과 대응하기 위해, 룩업 테이블 설정부(54)가 보유하는 룩업 테이블 요소로의 포인터(123)와, 데이터 포맷 설정부(55)가 보유하는 데이터 포맷 요소로의 포인터(124)가 설정된다. 이들 포인터(123 및 124)에서는, 예를 들면 그 요소의 식별 ID가 이용된다. 또한, 룩업 테이블 요소 및 데이터 포맷 요소에 대해서는 후술한다.
또한, 동일한 액티베이트 리스트 또는 니게이트 리스트에서 다음에 접속된 화상 메모리 요소를 지시하는 포인터(125)가, 예를 들면 그 화상 메모리 요소의 식별 ID에 의해 설정된다.
다음으로, 메모리 영역 관리부(51)의 처리에 대하여 설명한다. 먼저, 도 5 는, 메모리 영역을 확보할 때의 메모리 영역 관리부(51)의 처리의 흐름을 설명하는 흐름도이다.
〔단계 S101〕 호스트 컨트롤러로부터 인코드 또는 디코드의 개시가 CPU(10)에 대하여 요구되었을 때, CPU(10)는, 호스트 컨트롤러로부터 지정된 확보할 화상 사이즈, 및 필요한 메모리 영역에 대응하는 화상의 갯수를, CPU I/F(56)를 통해 메모리 영역 관리부(51)에 통지한다. 메모리 영역 관리부(51)는, CPU(10)로부터의 화상 사이즈 및 갯수를 수취하여, 이하의 처리의 실행을 개시한다.
〔단계 S102〕 화상 사이즈 요소의 리스트에, 새로운 화상 사이즈 요소를 추가한다. 이 때, 새로운 화상 사이즈 요소의 식별 ID(111)의 란에 값을 설정하고, 또한, 이미 생성되어 있었던 화상 사이즈 요소가 있는 경우에는, 그 요소의 포인터(119)의 란에, 새로운 화상 사이즈 요소의 식별 ID를 저장한다.
〔단계 S103〕 새로운 화상 사이즈 요소에 대하여, CPU(10)로부터의 화상 사이즈를 화상 폭(112) 및 화상 높이(113)의 란에 저장하고, 갯수를 화상 갯수(114)의 란에 저장한다. 또한, 화상 사이즈가 1차원의 데이터로서 표시되어 있는 경우에는, 그 데이터는, 예를 들면 화상 폭(112)의 란에만 저장되면 된다.
〔단계 S104〕 새롭게 생성한 화상 사이즈 요소의 니게이트 리스트의 최후미에, 화상 메모리 요소를 1개 추가한다. 이 때, 화상 사이즈 요소의 니게이트 테일을 나타내는 포인터(118)를 갱신한다. 또한, 이미 니게이트 리스트에 화상 사이즈 요소가 존재하는 경우에는, 니게이트 탑을 나타내는 포인터(117)를 갱신함과 함께, 최후미의 화상 사이즈 요소에 설정된 포인터(119)에, 새로운 화상 사이즈 요소의 식별 ID를 설정한다.
〔단계 S105〕 단계 S101에서 수취한 화상 사이즈를 메모리 확보 처리부(52)에 전달하고, 그 화상 사이즈에 대응하는 메모리 영역의 확보를 요구한다. 이것에 의해, 메모리 확보 처리부(52)는, 도 21에서 설명한 바와 같이, 수취한 화상 사이즈에 대응하는 메모리 영역을 화상 메모리(40) 내에 확보하고, 그 메모리 영역을 나타내는 이분 트리 구조의 노드 번호와, 메모리 영역의 선두 어드레스를 메모리 영역 관리부(51)에 반환한다.
〔단계 S106〕 메모리 확보 처리부(52)로부터 선두 어드레스 및 노드 번호를 수취한다.
〔단계 S107〕 해당 화상 메모리 요소의 노드 번호(122)의 란에, 메모리 확보 처리부(52)로부터 수취한 노드 번호를 저장한다.
〔단계 S108〕 룩업 테이블 설정부(54)에 대하여, CPU(10)로부터 지정된 화상 사이즈를 전달한다. 이것에 의해, 룩업 테이블 설정부(54)는 도 12에서 설명한 바와 같이, 화상 사이즈를 룩업 테이블(41a)에 설정하고, 또한, 대응하는 룩업 테이블 요소를 갱신하며, 그 요소의 식별 ID를 메모리 영역 관리부(51)에 반환한다.
〔단계 S109〕 룩업 테이블 설정부(54)로부터의 식별 ID를 수취하여, 룩업 테이블 요소로의 포인터(123)로서 그 식별 ID를 설정한다.
〔단계 S110〕 메모리 확보 처리부(52)로부터 수취한 선두 어드레스 및 노드 번호, 룩업 테이블 설정부(54)로부터 수취한 룩업 테이블 요소의 식별 ID, 화상 사이즈에 기초하는 메모리 맵핑 타입을, 데이터 포맷 설정부(55)에 전달한다. 이것 에 의해, 데이터 포맷 설정부(55)는, 도 17에서 설명한 바와 같이, 사용 중인 것을 나타내는 리스트에 1개의 데이터 포맷 요소를 추가하고, 그 요소에 대응한 데이터 포맷(41b)의 요소에 데이터를 설정한다. 그리고, 해당 데이터 포맷 요소의 식별 ID를 메모리 영역 관리부(51)에 반환한다.
〔단계 S111〕 데이터 포맷 설정부(55)로부터의 식별 ID를 수취하고, 데이터 포맷 요소로의 포인터(124)로서 그 식별 ID를 설정한다. 이상의 단계 S104∼S111의 처리에 의해, 1개의 화상 메모리 요소에 대응하는 메모리 영역이 확보된다.
〔단계 S112〕 필요한 메모리 영역에 대응하는 화상의 갯수분만큼 메모리 영역이 확보되었는지의 여부를 판별하여, 확보된 경우에는, 처리를 종료한다. 또한, 확보되어 있지 않은 경우에는, 단계 S104로 진행하여, 새로운 화상 메모리 요소를 니게이트 리스트의 최후미에 추가하고, 이 요소에 대응하는 메모리 영역을 확보하는 처리를 행한다.
이상의 처리에 의해, CPU(10)로부터 지정된 갯수분만큼의 화상 메모리 요소가 니게이트 리스트에 생성된다. 즉, 인코드 또는 디코드에 필요한 화상 갯수분의 미사용 상태(사용 가능 상태)의 메모리 영역이 확보된다.
다음으로, 도 6은, 확보된 메모리 영역을 인코더(20) 또는 디코더(30)에 제공할 때의 메모리 영역 관리부(51)의 처리의 흐름을 설명하는 흐름도이다.
〔단계 S201〕 인코더(20) 및 디코더(30)의 처리가 개시되며, 화상 데이터를 일시적으로 저장하기 위한 메모리 영역이 필요하게 되면, 인코더(20) 또는 디코더(30)는 CPU(10)를 통해 메모리 제어부(50)에 대하여 메모리 영역의 제공을 요구한 다. 메모리 영역 관리부(51)는, CPU(10)로부터 상기 요구를 받아서, 이하의 처리의 실행을 개시한다.
〔단계 S202〕 화상 사이즈 요소의 리스트를 선두로부터 순서대로 참조하여, 참조한 화상 사이즈 요소가 제공할 것, 즉 메모리 영역을 요구한 인코더(20) 또는 디코더(30)에 대응하는 것인지의 여부를 판정한다. 제공할 요소가 아닌 경우에는, 단계 S203으로 진행하고, 제공할 요소인 경우에는, 단계 S204로 진행한다.
〔단계 S203〕 리스트 중의 다음 화상 사이즈 요소를 참조하여, 해당 요소에 대하여 단계 S202의 판정을 행한다.
〔단계 S204〕 참조하고 있는 화상 사이즈 요소에 설정되어 있는 니게이트 탑으로의 포인터(117)에 기초하여, 니게이트 리스트의 선두의 화상 메모리 요소를 추출한다. 구체적으로 설명하면, 니게이트 탑으로의 포인터(117)를 니게이트 리스트 상의 다음 화상 메모리 요소를 지시하도록 갱신한다.
〔단계 S205〕 추출한 화상 메모리 요소의 식별 ID를 메모리 영역의 요구원의 인코더(20) 또는 디코더(30)에 대하여, CPU(10)를 통해 제공한다.
〔단계 S206〕 추출한 화상 메모리 요소를, 액티베이트 리스트의 최후미에 접속한다. 구체적으로 설명하면, 액티베이트 테일로의 포인터(116)를 새로운 화상 메모리 요소를 지시하도록 갱신한다. 또한, 이미 액티베이트 리스트에 화상 메모리 요소가 접속되어 있었던 경우에는, 그 중 최후미에 접속되어 있었던 요소에 대하여, 다음 화상 메모리 요소로의 포인터(125)를, 새로운 화상 메모리 요소를 지시하도록 설정한다. 또한, 필요에 따라 액티베이트 탑으로의 포인터(115)를 갱신한 다.
〔단계 S207〕메모리 영역의 요구원의 인코더(20) 또는 디코더(30)로부터 화상 데이터를 수취한다. 그리고, 해당 화상 메모리 요소에 설정된 룩업 테이블 요소 및 데이터 포맷 요소로의 포인터(123 및 124)에 기초하여 각 요소를 지정하고, 룩업 테이블 설정부(54) 및 데이터 포맷 설정부(55)에 대하여 화상 데이터의 기입을 지시함과 함께, 수취한 화상 데이터를 화상 메모리(40)로 전송한다. 이것에 의해, 액티베이트 리스트에 접속한 새로운 화상 메모리 요소에 대응하는 메모리 영역에, 화상 데이터가 기입된다.
이상의 처리에 의해, 인코더(20) 또는 디코더(30)로부터의 1 픽쳐분의 화상 데이터가 화상 메모리(40)에 기입된다. 이 때, 화상 데이터가 기입된 메모리 영역에 대응하는 화상 메모리 요소가 액티베이트 리스트에 접속되며, 사용 상태로 된다.
또한, 해당 화상 메모리 요소의 식별 ID를 수취한 인코더(20) 또는 디코더(30)는, 이 후, 그 식별 ID를 CPU(10)를 통해 메모리 제어부(50)에 통지함으로써, 필요한 화상 데이터를 화상 메모리(40)로부터 판독하는 것이 가능하게 된다. 이 때, 메모리 영역 관리부(51)는, CPU(10)를 통해 식별 ID를 수취하면, 해당하는 화상 메모리 요소에 설정된 포인터에 기초하여, 대응하는 룩업 테이블 요소 및 데이터 포맷 요소를 각각 룩업 테이블 설정부(54) 및 데이터 포맷 설정부(55)에 지정하고, 화상 데이터의 판독을 요구한다. 이것에 의해, 해당하는 화상 데이터가 화상 메모리(40)로부터 판독되어 메모리 영역 관리부(51)에 공급되며, 또한 인코더 I/F(57) 또는 디코더 I/F(58)를 통해, 인코더(20) 또는 디코더(30)로 전송된다.
다음으로, 도 7은, 인코더(20) 또는 디코더(30)로부터 메모리 영역이 반환될 때의 메모리 영역 관리부(51)의 처리의 흐름을 설명하는 흐름도이다.
〔단계 S301〕 인코더(20) 또는 디코더(30)는, 소정의 픽쳐의 데이터의 화상 메모리(40)로부터의 판독을, 처리에 필요한 횟수만큼 행한 후, 대응하는 메모리 영역을 반환하기 위한 정보를, CPU(10)를 통해 메모리 제어부(50)에 통지한다. 이 때, 반환하는 메모리 영역을 나타내는 식별 ID가 메모리 제어부(50)에 통지된다. 메모리 영역 관리부(51)는, CPU(10)로부터의 반환 통지 정보 및 식별 ID를 수취한다.
〔단계 S302〕 화상 사이즈 요소의 리스트를 선두로부터 순서대로 참조하여, 참조한 화상 사이즈 요소가 반환이 요구된 화상 사이즈 요소를 포함하는 것인지 여부를 판정한다. 포함하지 않는 경우에는 단계 S303으로 진행하며, 포함하는 경우에는 단계 S304로 진행한다.
〔단계 S303〕 리스트 중의 다음 화상 사이즈 요소를 참조하여, 해당 요소에 대하여 단계 S302의 판정을 행한다.
〔단계 S304〕 참조하고 있는 화상 사이즈 요소의 액티베이트 리스트를 선두로부터 순서대로 참조하여, 참조한 화상 메모리 요소가 반환이 요구된 것인지의 여부를 판정한다. 해당하지 않는 경우에는 단계 S305로 진행하며, 해당하는 경우에는 단계 S306으로 진행한다.
〔단계 S305〕 액티베이트 리스트 중의 다음 화상 메모리 요소를 참조하여, 해당 요소에 대하여 단계 S304의 판정을 행한다.
〔단계 S306〕 참조하고 있는 화상 메모리 요소를 액티베이트 리스트로부터 추출한다. 여기서, 메모리 영역의 반환 시에는 액티베이트 내의 어느 위치로부터라도 화상 메모리 요소를 추출할 수 있다. 따라서 이 때, 추출된 화상 메모리 요소의 직전의 요소에 대하여, 다음 화상 메모리 요소로의 포인터(125)를 갱신한다. 또한, 필요에 따라, 해당 화상 사이즈 요소에 설정된, 액티베이트 탑으로의 포인터(115) 또는 액티베이트 테일로의 포인터(116)를 갱신한다.
〔단계 S307〕 추출한 화상 메모리 요소를 니게이트 리스트의 최후미에 접속한다. 구체적으로 설명하면, 니게이트 테일로의 포인터(118)를, 새롭게 접속한 화상 메모리 요소를 지시하도록 갱신한다. 또한, 이미 니게이트 리스트에 화상 메모리 요소가 접속되어 있었던 경우에는, 그 중 최후미에 접속되어 있었던 요소에 대하여, 다음 화상 메모리 요소로의 포인터(125)를 새로운 화상 메모리 요소를 지시하도록 설정한다. 또한, 필요에 따라 니게이트 탑으로의 포인터(117)를 갱신한다.
이상의 처리에 의해, 판독할 필요가 없게 된 메모리 영역에 대응하는 화상 메모리 요소가 니게이트 리스트에 접속되며, 새로운 화상 데이터를 저장 가능한 상태로 된다. 여기서, 해방하는 메모리 영역은 액티베이트 리스트 중의 어느 위치로부터라도 선택 가능하며, 선택된 메모리 영역은 니게이트 리스트의 최후미에 접속된다. 이러한 선형 리스트의 관리를 행함으로써 예를 들면 MPEG 방식과 같이, 화상 메모리에 대하여 화상 데이터를 기입하는 순서와, 판독하는 순서가 일치하지 않는 경우에도 용이하게 대응하는 것이 가능하게 된다.
다음으로, 도 8은 메모리 영역을 해방할 때의 메모리 영역 관리부(51)의 처리의 흐름을 설명하는 흐름도이다.
〔단계 S401〕 호스트 컨트롤러로부터 인코더(20) 또는 디코더(30)에 대하여, 인코드 또는 디코드의 처리 종료, 또는 처리 대상의 화상 사이즈의 변경이 지시되면, 메모리 제어부(50)에는 해당 처리에서 사용하고 있었던 메모리 영역의 해방을 지시하는 정보가 CPU(10)를 통해 공급된다. 이 때, 해당 처리에서 설정되어 있었던 화상 사이즈 및 갯수가 메모리 제어부(50)에 공급된다. 메모리 영역 관리부(51)는, CPU(10)로부터의 화상 사이즈 및 갯수를 수취하면, 이하의 처리의 실행을 개시한다.
〔단계 S402〕 화상 사이즈 요소의 리스트를 선두로부터 순서대로 참조하여, 참조한 화상 사이즈 요소가 해방을 할 것, 즉 메모리 영역의 해방을 요구한 인코더(20) 또는 디코더(30)에 대응하는 것인지의 여부를 판정한다. 해방할 요소가 아닌 경우에는, 단계 S403으로 진행하고, 해방할 요소인 경우에는, 단계 S404로 진행한다.
〔단계 S403〕 리스트 중의 다음 화상 사이즈 요소를 참조하여, 해당 요소에 대하여 단계 S402의 판정을 행한다.
〔단계 S404〕 참조하고 있는 화상 사이즈 요소의 니게이트 리스트로부터, 선두의 화상 메모리 요소를 추출한다. 구체적으로 설명하면, 해당 화상 사이즈 요소에 설정된 니게이트 탑으로의 포인터(117)를 다음 화상 메모리 요소를 지시하도록 갱신한다.
〔단계 S405〕 추출한 화상 메모리 요소에 설정된 노드 번호를, 메모리 해방 처리부(53)에 전달하고, 대응하는 메모리 영역의 해방을 요구한다. 이것에 의해, 메모리 해방 처리부(53)는, 도 22에서 설명한 바와 같이, 수취한 노드 번호에 대응하는 화상 메모리(40) 내의 영역을 해방하는 처리를 실행한다.
〔단계 S406〕 추출한 화상 메모리 요소에 설정된 포인터(124)에 의해 지시된 데이터 포맷 요소를 해방하도록, 데이터 포맷 설정부(55)에 요구한다. 이것에 의해, 데이터 포맷 설정부(55)는, 도 18에서 설명한 바와 같이, 지정된 데이터 포맷 요소를 해방하는 처리를 실행하고, 또한, 대응하는 룩업 테이블 요소를 해방하도록 메모리 영역 관리부(51)에 요구한다.
〔단계 S407〕 데이터 포맷 설정부(55)로부터의 요구를 받은 후, 포인터(123)에 의해 지시된 룩업 테이블 요소를 해방하도록, 룩업 테이블 설정부(54)에 요구한다. 이것에 의해, 룩업 테이블 설정부(54)는, 도 13에서 설명한 바와 같이, 지정된 룩업 테이블 요소를 해방하는 처리를 실행한다.
이상의 단계 S404∼S407의 처리에 의해, 니게이트 리스트 내의 1개의 화상 메모리 요소에 대응하는 메모리 영역이 해방된다.
〔단계 S408〕 해당 화상 사이즈 요소의 니게이트 리스트에, 화상 메모리 요소가 존재하는지의 여부를 판정한다. 존재하는 경우에는 단계 S404로 되돌아가서, 니게이트 리스트의 선두의 화상 메모리 요소에 대하여, 해방 처리를 행한다. 그리고, 모든 화상 메모리 요소가 해방되어, 니게이트 리스트에 요소가 존재하지 않게 되었을 때, 단계 S409로 진행한다.
〔단계 S409〕 해당 화상 사이즈 요소를 해방한다.
이상의 처리에 의해, 인코더(20) 또는 디코더(30)의 처리를 위해 확보되어 있었던 메모리 영역이 해방되고, 새롭게 사용 가능한 상태로 된다.
[룩업 테이블 설정부의 동작]
다음으로, 룩업 테이블 설정부(54)의 동작에 대하여 설명한다. 먼저, 도 9는, 룩업 테이블(41a)의 구성예를 도시하는 도면이다.
도 9에 도시한 바와 같이, 룩업 테이블(41a)은, 화상 메모리(40)의 하드웨어 I/F에 맵핑된 영역에 대응하는 32개의 요소를 갖는다. 각 요소에는, 1차원 또는 2차원으로 표시되는 화상 사이즈의 데이터가 저장된다. 예를 들면, 1차원으로 표시되는 경우, 화상 사이즈는 18 비트의 데이터로서 저장되며, 2차원으로 표시되는 경우, 수직 방향, 수평 방향의 화상 사이즈가 각각 9 비트의 데이터로서 저장된다.
도 10은, 룩업 테이블 설정부(54)에 의한 메모리 영역의 관리 방법을 설명하기 위한 도면이다.
룩업 테이블 설정부(54)는, 메모리 영역의 데이터 사이즈의 정보를 룩업 테이블 요소를 이용하여 관리한다. 룩업 테이블 요소는, 도 10에 도시한 바와 같이, 액티베이트 리스트(131) 및 니게이트 리스트(132)의 2개의 선형 리스트에 의해 관리된다. 액티베이트 리스트(131)에는, 메모리 영역으로서 현재 사용되어 있는, 즉, 확보된 메모리 영역에 할당되어 있는 룩업 테이블 요소가 접속되며, 니게이트 리스트(132)에는 미사용된 룩업 테이블 요소가 접속된다.
또한, 룩업 테이블 요소는, 룩업 테이블(41a)의 요소 수만큼 미리 준비되며, 초기 상태에서는, 모든 룩업 테이블 요소가 니게이트 리스트(132)에 접속된다. 그리고, 인코더(20) 또는 디코더(30)에 의한 처리의 개시 시에, 필요한 메모리 영역의 확보가 요구되면, 니게이트 리스트(132)의 선두의 룩업 테이블 요소가 추출되고, 액티베이트 리스트(131)의 최후미에 접속된다. 그리고, 인코더(20) 또는 디코더(30)의 처리가 종료되고, 확보되어 있었던 메모리 영역의 해방이 요구되면, 대응하는 룩업 테이블 요소가 액티베이트 리스트(131)로부터 추출되며, 니게이트 리스트(132)의 최후미에 접속된다.
도 11은, 룩업 테이블 요소의 데이터 구조를 도시하는 도면이다.
각 룩업 테이블 요소에는, 룩업 테이블 설정부(54)에 의해 도 11에 나타낸 바와 같은 데이터가 설정된다. 식별 ID(141)는, 각 룩업 테이블 요소를 식별하는 유니크한 번호이다. 사용 요소 수(142)는, 해당 룩업 테이블 요소를 사용하는 화상 메모리 요소의 카운트값을 나타낸다. 수직 방향 사이즈(143) 및 수평 방향 사이즈(144)는, 2차원의 데이터로 표시된 경우의 화상 사이즈를 나타내며, 1차원 사이즈(145)는 1차원의 데이터로 표시된 경우의 화상 사이즈를 나타낸다.
또한, 룩업 테이블(41a)과의 대응을 행하기 위해, 룩업 테이블(41a) 내의 대응하는 요소를 지시하는 포인터(146)가 설정된다. 또한, 선형 리스트를 구성하기 위해, 동일한 리스트에서 다음에 접속되는 룩업 테이블 요소를 지시하는 포인터(147)도 설정된다.
덧붙여서, 상기 각 데이터 중, 식별 ID(141) 및 룩업 테이블(41a) 내의 요소로의 포인터(146)에 대해서는 미리 설정된다. 또한, 초기 상태에서는, 사용 요소 수(142), 수직 방향 사이즈(143), 수평 방향 사이즈(144) 및 1차원 사이즈(145)로서, 0이 설정된다.
또한, 룩업 테이블 설정부(54)는, 그 밖에, 액티베이트 리스트(131)의 선두(액티베이트 탑) 및 최후미(액티베이트 테일)의 룩업 테이블 요소를 각각 지시하는 포인터와, 니게이트 리스트(132)의 선두(니게이트 탑) 및 최후미(니게이트 테일)의 룩업 테이블 요소를 각각 나타내는 포인터를 도시하지 않는 테이블에 보유함으로써, 각 리스트를 관리하고 있다.
다음으로, 룩업 테이블 설정부(54)의 처리에 대하여 설명한다. 먼저, 도 12는 메모리 영역이 확보될 때의 룩업 테이블 설정부(54)의 처리의 흐름을 설명하는 흐름도이다.
〔단계 S501〕 인코드 또는 디코드를 위한 메모리 영역을 확보하는 처리의 실행 중에, 메모리 영역 관리부(51)로부터, 확보할 메모리 영역의 화상 사이즈가 룩업 테이블 설정부(54)에 전달된다(도 5의 단계 S108에 대응). 룩업 테이블 설정부(54)는, 이 화상 사이즈를 수취하여, 이하의 처리를 개시한다.
〔단계 S502〕 액티베이트 리스트(131)의 선두(액티베이트 탑)의 룩업 테이블 요소를 참조한다. 덧붙여서, 도시하지 않지만, 액티베이트 리스트(131)에 룩업 테이블 요소가 접속되어 있지 않은 경우에는, 단계 S506으로 진행한다.
〔단계 S503〕 참조하고 있는 룩업 테이블 요소가, 메모리 영역 관리부(51)로부터의 화상 사이즈에 대응하는 것인지의 여부를 판정하여, 대응하는 경우에는 단계 S510으로 진행하고, 대응하지 않는 경우에는 단계 S504로 진행한다.
〔단계 S504〕 액티베이트 리스트(131)에 다음 룩업 테이블 요소가 있는 경우에는, 단계 S505로 진행하고, 없는 경우에는, 단계 S506으로 진행한다.
〔단계 S505〕 액티베이트 리스트(131) 상의 다음 룩업 테이블 요소를 참조하여, 단계 S503으로 되돌아간다. 이상의 단계 S503∼S505의 처리에 의해, 액티베이트 리스트(131)의 최후미의 룩업 테이블 요소가 메모리 영역 관리부(51)로부터의 화상 사이즈에 대응하는 것인 경우에 단계 S510으로 진행하며, 대응하는 룩업 테이블 요소가 액티베이트 리스트(131)에 존재하지 않는 경우에 단계 S506으로 진행한다.
〔단계 S506〕 니게이트 리스트(132)의 선두(니게이트 탑)의 룩업 테이블 요소를 추출하여, 니게이트 탑의 요소를 지시하는 포인터를 다음 요소를 지시하도록 갱신한다.
〔단계 S507〕 추출한 룩업 테이블 요소를, 액티베이트 리스트(131)의 최후미에 접속한다. 구체적으로 설명하면, 그것까지 액티베이트 리스트(131)의 최후미에 접속되어 있었던 룩업 테이블 요소에 설정되어 있었던, 다음 요소로의 포인터(147)와, 액티베이트 테일의 요소를 지시하는 포인터를, 새롭게 접속한 요소를 지시하도록 갱신한다.
〔단계 S508〕 해당 룩업 테이블 요소의 수직 방향 사이즈(143) 및 수평 방향 사이즈(144)의 각 란, 또는 1차원 사이즈(145)의 란에, 메모리 영역 관리부(51)로부터의 화상 사이즈를 설정한다.
〔단계 S509〕 해당 룩업 테이블 요소에 설정된 포인터(147)가 지시하는 룩 업 테이블(41a) 상의 요소에, 단계 S508에서 설정한 화상 사이즈를 설정한다.
〔단계 S510〕 해당 룩업 테이블 요소의 사용 요소 수(142)의 카운트값에 1을 가산한다.
〔단계 S511〕 해당 룩업 테이블 요소의 식별 ID(141)를, 메모리 영역 관리부(51)에 전달한다. 메모리 영역 관리부(51)는, 룩업 테이블 설정부(54)로부터의 식별 ID를 수취함으로써, 화상 메모리 요소와 룩업 테이블 요소를 대응시킨다(도 5의 단계 S109에 대응).
이상의 처리에 의해, 인코더(20) 또는 디코더(30)의 처리의 개시 시에, 확보된 메모리 영역에 대응하는 룩업 테이블 요소가, 액티베이트 리스트(131)의 최후미에 생성된다. 여기서, 본 실시예에서는, 사용 요소 수(142)의 카운트값을 이용함으로써, 1개의 룩업 테이블 요소에 대하여, 동일한 화상 사이즈가 설정된 복수의 메모리 영역(화상 메모리 요소)을 대응시키고 있다. 이것에 의해, 32개라는 한정된 요소 수를 갖는 룩업 테이블(41a)에 대하여, 화상 사이즈를 효율적으로 할당하는 것이 가능하게 되어 있다.
다음으로, 도 13은, 메모리 영역이 해방되는 경우의 룩업 테이블 설정부(54)의 처리의 흐름을 설명하는 흐름도이다.
〔단계 S601〕 인코더(20) 또는 디코더(30)의 처리가 일단 종료하는 경우에는, 메모리 영역 관리부(51)는, 1개의 화상 메모리 요소를 해방하는 처리 중에, 그 화상 메모리 요소에 대응하는 룩업 테이블 요소를 해방하도록, 룩업 테이블 설정부(54)에 대하여 요구한다(도 8의 단계 S407에 대응). 이 요구에서는, 예를 들면 해 방하는 메모리 영역의 화상 사이즈가 지정된다. 룩업 테이블 설정부(54)는, 메모리 영역 관리부(51)로부터의 요구를 받으면, 이하의 처리를 개시한다.
〔단계 S602〕 액티베이트 리스트(131)의 선두(액티베이트 탑)의 룩업 테이블 요소를 참조한다.
〔단계 S603〕 참조한 룩업 테이블 요소가 메모리 영역 관리부(51)로부터의 요구에 대응하는 요소인지의 여부를, 예를 들면 화상 사이즈의 설정으로부터 판정하여, 대응하지 않는 경우에는 단계 S604로 진행하며, 대응하는 경우에는 단계 S605로 진행한다.
〔단계 S604〕 액티베이트 리스트(131) 상의 다음 룩업 테이블 요소를 참조하여, 단계 S603으로 진행한다.
〔단계 S605〕 해당 룩업 테이블 요소에 설정된 사용 요소 수(142)의 카운트값을 1만큼 감산한다.
〔단계 S606〕 사용 요소 수(142)의 카운트값이 0인 경우에는, 단계 S607로 진행하고, 0이 아닌 경우에는, 처리를 종료한다.
〔단계 S607〕 해당 룩업 테이블 요소를 액티베이트 리스트(131)로부터 추출한다. 이 때, 필요에 따라, 액티베이트 탑을 지시하는 포인터, 액티베이트 테일을 지시하는 포인터, 추출한 요소의 직전 요소에 설정된, 다음 요소로의 포인터(147) 등을 갱신한다.
〔단계 S608〕 추출한 룩업 테이블 요소를 니게이트 리스트(132)의 최후미에 접속하며, 그것까지 니게이트 리스트(132)의 최후미에 접속되어 있었던 요소의, 다 음 요소를 지시하는 포인터(147)와, 니게이트 테일을 지시하는 포인터를, 새롭게 접속한 요소를 지시하도록 갱신한다.
이상의 처리가 인코더(20) 또는 디코더(30)의 처리를 위해 확보되어 있었던 메모리 영역(화상 메모리 요소)을 1개씩 해방할 때마다 실행되어서, 대응하는 룩업 테이블 요소의 사용 요소 수(142)의 카운트값이 감산되어 간다. 그리고, 카운트값이 0으로 되면, 1개의 룩업 테이블 요소가 액티베이트 리스트(131)로부터 니게이트 리스트(132)로 이행되어, 룩업 테이블(41a) 상의 1개의 요소에 대한 화상 사이즈의 설정이 해제된다.
[데이터 포맷 설정부의 동작]
다음으로, 데이터 포맷 설정부(55)의 동작에 대하여 설명한다. 먼저, 도 14는, 데이터 포맷(41b)의 구성예를 도시하는 도면이다.
도 14에 도시한 바와 같이, 데이터 포맷(41b)은, 화상 메모리(40)의 하드웨어 I/F에 맵핑된 영역에 대응하는 256개의 요소를 갖는다. 각 요소에는, 화상 사이즈가 1차원 또는 2차원 중 어느 것에 의해 표시되는지를 나타내는 메모리 맵핑 타입(Memory Mapping Type)(151)과, 룩업 테이블(41a)의 대응하는 요소로의 포인터(152)와, 화상 메모리(40) 내의 대응 영역의 선두 어드레스를 나타내는 베이스 어드레스(Base Address)(153)가 저장된다. 또한, 룩업 테이블(41a)의 대응 요소로의 포인터(152)로서는, 예를 들면 이 요소에 대응하는 룩업 테이블 요소의 식별 ID가 설정된다.
도 15는, 데이터 포맷 설정부(55)에 의한 메모리 영역의 관리 방법을 설명하 기 위한 도면이다.
데이터 포맷 설정부(55)는, 메모리 영역의 어드레스 및 룩업 테이블(41a)과의 대응 정보를 데이터 포맷 요소를 이용하여 관리한다. 데이터 포맷 요소는, 도 15에 도시한 바와 같이, 액티베이트 리스트(161) 및 니게이트 리스트(162)의 2개의 선형 리스트에 의해 관리된다. 액티베이트 리스트(161)에는, 메모리 영역으로서 현재 사용되고 있는, 즉, 확보된 메모리 영역에 할당되어 있는 데이터 포맷 요소가 접속되며, 니게이트 리스트(162)에는 미사용된 데이터 포맷 요소가 접속된다.
또한, 데이터 포맷 요소는, 데이터 포맷(41b)의 요소 수만큼 미리 준비되며, 초기 상태에서는, 모든 데이터 포맷 요소가 니게이트 리스트(162)에 접속된다. 그리고, 인코더(20) 또는 디코더(30)에 의한 처리의 개시 시에, 필요한 메모리 영역의 확보가 요구되면, 니게이트 리스트(162)의 선두에서 확보된 메모리 영역의 수만큼의 데이터 포맷 요소가 추출되고, 액티베이트 리스트(161)의 최후미에 접속된다. 그리고, 인코더(20) 또는 디코더(30)의 처리가 종료하여, 확보되어 있었던 메모리 영역의 해방이 요구되면, 대응하는 모든 요소가 액티베이트 리스트(161)로부터 순차 추출되며, 니게이트 리스트(162)의 최후미에 접속된다.
도 16은, 데이터 포맷 요소의 데이터 구조를 도시하는 도면이다.
각 데이터 포맷 요소에는, 데이터 포맷 설정부(55)에 의해 도 16에 도시한 바와 같은 데이터가 설정된다. 식별 ID(171)는, 각 데이터 포맷 요소를 식별하는 유니크한 번호이며, 초기 설정 시에 설정된다. 노드 번호(172)는, 메모리 영역의 확보 시에 메모리 확보 처리부(52)로부터 출력되는 이분 트리 구조의 노드 번호를 나타낸다.
또한, 데이터 포맷(41b)과의 대응을 행하기 위해, 데이터 포맷(41b) 내의 대응하는 요소를 지시하는 포인터(173)가 설정된다. 이 포인터(173)는, 초기 설정 시에 미리 설정된다. 또한, 선형 리스트를 구성하기 위해, 동일한 리스트에서 다음에 접속되는 데이터 포맷 요소를 지시하는 포인터(174)도 설정된다.
또한, 데이터 포맷 설정부(55)는, 그 밖에, 액티베이트 리스트(161)의 선두(액티베이트 탑) 및 최후미(액티베이트 테일)의 데이터 포맷 요소를 각각 지시하는 포인터와, 니게이트 리스트(162)의 선두(니게이트 탑) 및 최후미(니게이트 테일)의 데이터 포맷 요소를 각각 나타내는 포인터를 도시하지 않는 테이블에 보유함으로써, 각 리스트를 관리하고 있다.
다음으로, 데이터 포맷 설정부(55)의 처리에 대하여 설명한다. 먼저, 도 17은, 메모리 영역이 확보될 때의 데이터 포맷 설정부(55)의 처리의 흐름을 설명하는 흐름도이다.
〔단계 S701〕 인코드 또는 디코드를 위한 메모리 영역의 확보 처리의 실행 중에, 데이터 포맷 설정부(55)는, 메모리 영역 관리부(51)로부터, 해방할 메모리 영역에 대응하는 데이터 포맷 요소의 해방 요구를 받아서(도 5의 단계 S110에 대응), 이하의 처리를 개시한다. 또한, 이 때, 메모리 영역 관리부(51)로부터는, 확보해야 할 메모리 영역의 선두 어드레스, 노드 번호, 대응하는 룩업 테이블 요소의 식별 ID, 화상 사이즈에 기초하는 메모리 맵핑 타입의 각 정보가 데이터 포맷 설정부(55)에 공급된다.
〔단계 S702〕 니게이트 리스트(162)의 선두(니게이트 탑)의 데이터 포맷 요소를 추출하고, 니게이트 탑의 요소를 지시하는 포인터를 다음 요소를 지시하도록 갱신한다.
〔단계 S703〕 추출한 데이터 포맷 요소를 액티베이트 리스트(161)의 최후미(액티베이트 테일)에 접속한다. 구체적으로 설명하면, 그것까지 액티베이트 리스트(161)의 최후미에 접속되어 있었던 데이터 포맷 요소에 설정되어 있었던, 다음 요소로의 포인터(174)와, 액티베이트 테일의 요소를 지시하는 포인터를, 새롭게 접속한 요소를 지시하도록 갱신한다.
〔단계 S704〕 해당 데이터 포맷 요소에 설정된 포인터(173)가 지시하는, 데이터 포맷(41b)의 요소에, 메모리 영역 관리부(51)로부터 수취한 메모리 맵핑 타입을 설정한다.
〔단계 S705〕 포인터(173)가 지시하는 데이터 포맷(41b)의 대응 요소에, 룩업 테이블(41a) 상의 대응 요소로의 포인터를 설정한다. 이 값으로서는, 메모리 영역 관리부(51)로부터 수취한 룩업 테이블 요소의 식별 ID가 설정된다. 덧붙여서, 이 식별 ID는, 이 흐름도의 개시 시 이외에, 예를 들면 단계 S705의 처리 시에, 메모리 영역 관리부(51)를 통해 룩업 테이블 설정부(54)에 조회함으로써 취득하여도 된다.
〔단계 S706〕 포인터(173)가 지시하는 데이터 포맷(41b)의 대응 요소에, 메모리 영역 관리부(51)로부터 수취한 선두 어드레스를 설정한다.
〔단계 S707〕 메모리 영역 관리부(51)로부터 수취한 노드 번호를, 해당 데 이터 포맷 요소의 노드 번호(172)의 란에 설정한다.
〔단계 S708〕 해당 데이터 포맷 요소의 식별 ID(171)를, 메모리 영역 관리부(51)에 전달한다. 메모리 영역 관리부(51)는, 데이터 포맷 설정부(55)로부터의 식별 ID를 수취함으로써, 화상 메모리 요소와 데이터 포맷 요소를 대응시킨다(도 5의 단계 S111에 대응).
이상의 처리에 의해, 인코더(20) 또는 디코더(30)의 처리의 개시 시에, 확보된 각 메모리 영역에 대응하는 데이터 포맷 요소가, 액티베이트 리스트(161)의 최후미에 순차 생성된다.
다음으로, 도 18은, 메모리 영역이 해방되는 경우의 데이터 포맷 설정부(55)의 처리의 흐름을 설명하는 도면이다.
〔단계 S801〕 인코더(20) 또는 디코더(30)의 처리가 일단 종료하는 경우에는, 메모리 영역 관리부(51)는, 1개의 화상 메모리 요소를 해방하는 처리 중에, 그 화상 메모리 요소에 대응하는 데이터 포맷 요소를 해방하도록, 데이터 포맷 설정부(55)에 대하여 요구한다(도 8의 단계 S406에 대응). 이 요구에서는, 예를 들면 해방하는 메모리 영역(화상 메모리 요소)이 보유하는 포인터(124)의 설정값(식별 ID)이 지정된다. 데이터 포맷 설정부(55)는, 메모리 영역 관리부(51)로부터의 요구를 받으면, 이하의 처리를 개시한다.
〔단계 S802〕 액티베이트 리스트(161)의 선두(액티베이트 탑)의 데이터 포맷 요소를 참조한다.
〔단계 S803〕 참조한 데이터 포맷 요소가 메모리 영역 관리부(51)로부터의 요구에 대응하는 요소인지의 여부를 식별 ID로부터 판정하여, 대응하지 않는 경우에는 단계 S804로 진행하고, 대응하는 경우에는 단계 S805로 진행한다.
〔단계 S804〕 액티베이트 리스트(161) 상의 다음 데이터 포맷 요소를 참조하여, 단계 S803으로 진행한다.
〔단계 S805〕 해당 데이터 포맷 요소를 액티베이트 리스트(161)로부터 추출한다. 이 때, 필요에 따라, 액티베이트 탑을 지시하는 포인터, 액티베이트 테일을 지시하는 포인터, 추출한 요소의 직전 요소에 설정된, 다음 요소로의 포인터(174) 등을 갱신한다.
〔단계 S806〕 추출한 데이터 포맷 요소에 대응하는 룩업 테이블 요소의 해방을, 메모리 영역 관리부(51)에 요구한다. 이것에 의해, 메모리 영역 관리부(51)는, 대응하는 룩업 테이블 요소의 식별 ID를 지정하여, 이 요소를 해방하도록, 룩업 테이블 설정부(54)에 대하여 요구한다(도 8의 단계 S407에 대응). 그리고, 룩업 테이블 설정부(54)가, 이 요구에 따라, 도 13에 도시한 룩업 테이블 요소의 해방 처리를 실행한다.
〔단계 S807〕 해당 데이터 포맷 요소에 대응된 데이터 포맷(41b)의 요소의 설정값을 클리어하고, 이 요소를 대응시킨다.
〔단계 S808〕 해당 데이터 포맷 요소를 니게이트 리스트(162)의 최후미에 접속하고, 그것까지 니게이트 리스트(162)의 최후미에 접속되어 있었던 요소의, 다음 요소를 지시하는 포인터(174)와, 니게이트 테일을 지시하는 포인터를, 새롭게 접속한 요소를 지시하도록 갱신한다.
이상의 처리가, 인코더(20) 또는 디코더(30)의 처리를 위해 확보되어 있었던 메모리 영역(화상 메모리 요소)을 1개씩 해방할 때마다 실행되어, 대응하는 데이터 포맷 요소가 액티베이트 리스트(161)로부터 니게이트 리스트(162)로 순차 이행되어, 데이터 포맷(41b) 상의 1개의 요소에 대한 어드레스 등의 설정이 해제된다.
[메모리 확보 처리부 및 메모리 해방 처리부의 동작]
도 19는, 메모리 확보 처리부(52) 및 메모리 해방 처리부(53)에 의한 메모리 영역의 할당 방법을 설명하기 위한 도면이다.
메모리 확보 처리부(52) 및 메모리 해방 처리부(53)는, 화상 메모리(40)의 기억 영역을 2의 거듭제곱만큼 분할한 단위 영역을, 이분 트리 구조의 가장 깊은 노드에 할당함으로써 관리한다. 가장 깊은 위치 이외의 노드는, 그 자 노드에 할당된 모든 단위 영역을 포함한다. 그리고, 메모리 확보 처리부(52) 및 메모리 해방 처리부(53)는, 각 단위 영역의 선두 어드레스를 보유하며, 노드를 지정함으로써, 그 노드에 대응하는 단위 영역의 선두 어드레스를 출력하는 것이 가능하게 되어 있다.
도 19의 예에서는, 설명을 간단히 하기 위해, 화상 메모리(40)를, 단위 영역(40a∼40d)의 4개로 분할하고 있다. 그리고, 7개의 노드로 이루어지는 이분 트리 구조를 이용하여, 그 가장 깊은 위치의 노드 "3"∼"6"에, 각 단위 영역(40a∼40d)을 할당하고 있다.
또한, 메모리 영역의 확보 및 해방의 처리를 위해, 이분 트리 구조에서의 계층의 깊이(Depth), 동일한 계층의 노드의 순서를 나타내는 오프셋(Offset), 동일한 계층에서의 노드 수를 나타내는 계층 폭(Width)의 값이 이용된다. 여기서, 도 19의 예에서는, 계층의 깊이 "1"인 노드 "1"은 단위 영역(40a 및 40b)을 포함하며, 노드 "2"는 마찬가지로 단위 영역(40c 및 40d)을 포함한다. 또한, 깊이 "0"인 노드 "0"은, 단위 영역(40a∼40d)을 포함한다.
도 20은, 메모리 확보 처리부(52) 및 메모리 해방 처리부(53)에 의한 이분 트리 구조의 노드 관리 방법을 설명하기 위한 도면이다.
단위 영역의 사용 상태는, 이분 트리 구조의 각 노드의 상태(노드 스테이터스)를 이용하여 관리된다. 노드 스테이터스는, 미사용 상태(확보되어 있지 않은 상태)를 "NONE", 그 노드에 대응하는 단위 영역이 사용 상태(확보되어 있는 상태)를 "USED", 그 노드의 자 노드가 사용 중인 상태를 "USING", 그 노드 혹은 자 노드가 해방 처리 중인 상태를 "FREE"로서 나타낸다.
각 노드의 노드 스테이터스는, 메모리 확보 처리부(52) 및 메모리 해방 처리부(53)에 의해, 공통의 노드 스테이터스 관리 테이블을 이용하여 관리된다. 예를 들면, 도 19에 도시한 이분 트리 구조에서, 각 노드가 도 20의 (a)에 도시한 바와 같은 상태인 경우, 노드 스테이터스 관리 테이블은, 도 20의 (b)와 같이 설정된다. 노드 스테이터스 관리 테이블은, 예를 들면 메모리 영역 관리부(51)가 보유하며, 메모리 확보 처리부(52) 및 메모리 해방 처리부(53)에 의한 이하의 도 21 및 도 22의 처리 중에 설정되고, 또한 참조된다.
도 21은, 메모리 영역이 확보되는 경우의 메모리 확보 처리부(52)의 처리의 흐름을 설명하는 흐름도이다.
〔단계 S901〕 인코드 또는 디코드를 위한 메모리 영역을 확보하는 처리의 실행 중에, 메모리 영역 관리부(51)로부터, 확보할 메모리 영역의 화상 사이즈가 메모리 확보 처리부(52)에 전달된다(도 5의 단계 S105에 대응). 메모리 확보 처리부(52)는, 이 화상 사이즈를 수취하여, 이하의 처리를 개시한다.
〔단계 S902〕 계층의 깊이 "0"인 노드를 참조한다.
〔단계 S903〕 메모리 영역 관리부(51)에 지정된 화상 사이즈에 대응하는 데이터 사이즈가, 참조하고 있는 노드가 포함하는 메모리 영역의 데이터 사이즈보다 작은지 여부를 판정한다. 작은 경우에는, 단계 S904로 진행하고, 작지 않은 경우에는, 단계 S905로 진행한다.
〔단계 S904〕 계층의 깊이의 값에 1을 가산하고, 참조하는 노드의 계층을 1개 낮춘다.
〔단계 S905〕 참조하는 계층의 깊이의 값으로부터 1을 감산한다. 이것에 의해, 확보할 화상 사이즈에 대하여 적절한 계층이 선택된다. 그리고, 참조할 노드의 오프셋의 값을 "0"으로 하여, 현재의 계층의 계층 폭을 설정한다.
〔단계 S906〕 오프셋의 값이 계층 폭의 값보다 작은지 여부를 판정하여, 작은 경우에는, 단계 S907로 진행하고, 작지 않은 경우에는, 단계 S909로 진행한다.
〔단계 S907〕 참조하고 있는 노드의 노드 스테이터스가 "NONE"인지의 여부를 판정하여, "NONE"인 경우에는, 단계 S910으로 진행하고, 그렇지 않은 경우에는, 단계 S908로 진행한다.
〔단계 S908〕 참조하고 있는 노드가 사용 중 또는 해방 처리 중이기 때문 에, 오프셋의 값에 1을 가산하고, 동일한 계층의 다음 노드를 참조한다. 그리고, 단계 S906으로 되돌아간다. 덧붙여서, 이 후의 단계 S906에서, 오프셋의 값이 계층 폭 이상으로 되어서, 동일한 계층의 모든 노드가 사용 중이라고 판정된 경우에, 단계 S909로 진행하게 된다.
〔단계 S909〕 계층의 깊이의 값으로부터 1을 감산하고, 1개 상위의 계층의 노드를 참조한다. 그리고, 오프셋의 값을 "0"으로 하고, 현재의 계층의 계층 폭을 설정하고, 단계 S906으로 되돌아간다.
〔단계 S910〕 참조하고 있는 노드의 노드 스테이터스를 "USED"로 하고, 또한 그 모(親) 노드의 노드 스테이터스를 "USING"으로 한다.
〔단계 S911〕 참조하고 있는 노드의 노드 번호를 메모리 영역 관리부(51)에 반환한다.
〔단계 S912〕 해당 노드의 포함하는 메모리 영역의 선두 어드레스를, 메모리 영역 관리부(51)에 반환한다.
이상의 처리에 의해, 지정된 화상 사이즈의 화상 데이터를 저장하기 위해 필요 최소한의 메모리 영역이 확보되며, 단계 S911 및 S912의 처리에 의해, 메모리 영역 관리부(51)는, 확보된 메모리 영역에 대응하는 노드 번호와, 그 영역의 선두 어드레스를 수취한다(도 5의 단계 S106).
다음으로, 도 22는, 메모리 영역이 해방되는 경우의 메모리 해방 처리부(53)의 처리의 흐름을 설명하는 흐름도이다.
〔단계 S1001〕 인코더(20) 또는 디코더(30)의 처리가 일단 종료되는 경우에 는, 메모리 영역 관리부(51)는 1개의 화상 메모리 요소에 대응된 노드 번호를, 메모리 해방 처리부(53)에 전달하고, 그 메모리 영역의 해방을 요구한다(도 8의 단계 S405에 대응). 메모리 해방 처리부(53)는, 메모리 영역 관리부(51)로부터의 노드 번호를 수취하고, 이하의 처리를 개시한다.
〔단계 S1002〕 수취한 노드 번호에 대응하는 계층의 깊이, 오프셋의 값을 구한다.
〔단계 S1003〕 구해진 계층의 깊이 및 오프셋에 해당하는 노드의 노드 스테이터스를 "FREE"로 설정한다.
〔단계 S1004〕 동일한 모 노드를 갖는 동일한 계층의 다른 노드의 노드 스테이터스가 "FREE"인 경우에는, 단계 S1005로 진행하고, 그렇지 않은 경우에는, 처리를 종료한다.
〔단계 S1005〕 동일한 모 노드를 갖는 동일한 계층의 다른 노드의 노드 스테이터스를 "NONE"로 하고, 그 모 노드의 노드 스테이터스를 "FREE"로 한다.
이상의 처리에 의해, 확보되어 있었던 1개의 화상 메모리 요소에 대응하는 메모리 영역이 해방된다. 그리고, 1개의 화상 사이즈 요소 내의 모든 화상 메모리 요소가 해방된 후, 상기 단계 S1004 및 S1005에서 "FREE"로 된 노드의 노드 스테이터스를 "NONE"으로 변경하고, 해방한 메모리 영역을 사용 가능한 상태로 한다.
[제1 실시예에서의 효과]
이상 설명한 화상 처리 장치에서는, 인코더(20) 또는 디코더(30)의 한쪽 처리에서의 화상 사이즈의 설정 변경을, 다른쪽 처리를 정지하지 않고 행하는 것이 가능하게 된다. 예를 들면, 상기 화상 처리 장치가 디지털 비디오 카메라에 탑재된 경우를 상정하면, 촬상된 동화상은, 인코더(20)에 의해 인코드되고, 자기 테이프 등의 기록 매체에 기록된다. 또한, 기록 매체로부터 판독된 동화상의 부호화 스트림은 디코더(30)에 의해 디코드되고, 디스플레이에 표시된다.
또한, 자기 테이프에 기록된 동화상의 부호화 스트림을, 그 화상 사이즈를 작게 하여 재인코드하고, 메모리 카드에 기록하거나, 혹은 네트워크를 통해 외부 기기에 송신하는 경우가 상정된다. 이 경우, 자기 테이프로부터 판독된 부호화 스트림이 디코더(30)에 의해 디코드된 후, 인코더(20)에 의해 상이한 화상 사이즈로 인코드된다. 이 처리에서, 본 실시예에서는, 자기 테이프로부터 부호화 스트림을 판독하여, 디코더(30)에 의해 디코드하는 처리를 계속한 채로, 인코더(20)에 의한 인코드 시의 화상 사이즈를 도중에 변경하는 것이 가능하게 된다.
또한, 화상 사이즈가 다른 동화상의 부호화 스트림을 메모리 카드 내에 준비해두고, 이들을 재인코드하여 네트워크를 통해 외부 기기에 송신하는 경우를 상정하면, 일정한 화상 사이즈에서의 인코더(20)에 의한 인코드를 계속한 채로, 메모리 카드 내의 부호화 스트림을 잇달아 판독하여, 디코더(30)에 의해 디코드하고 인코더(20)로 공급하는 것이 가능하게 된다.
이러한 효과는, 주로, 이분 트리 구조를 이용하여 메모리 영역의 확보 및 해방을 행하는 메모리 확보 처리부(52) 및 메모리 해방 처리부(53)에 의한 처리와, 확보된 메모리 영역의 사용 상태를 선형 리스트를 이용하여 일원적으로 관리하는 메모리 영역 관리부(51)의 처리에 의해 얻어지는 것이다. 즉, 메모리 확보 처리부 (52) 및 메모리 해방 처리부(53)는, 인코드 및 디코드 시에 1 픽쳐분의 화상 데이터를 저장하기 위해 필요하게 되는 최저한의 메모리 영역을, 이분 트리 구조를 이용함으로써 화상 메모리(40) 상의 빈 영역으로부터 효율적으로 확보하는 것이 가능하게 되어 있다.
또한, 메모리 영역 관리부(51)는, 인코드 및 디코드를 위해 필요한 메모리 영역의 확보를, 1 픽쳐분씩 개별적으로 메모리 확보 처리부(52)에 요구하여, 이들의 사용 상태를 관리하기 때문에, 인코더(20) 또는 디코더(30)가 각각의 처리 시에 사용하는 메모리 영역은, 실제로는 화상 메모리(40) 내의 분산된 영역에 할당되고, 고정적으로는 할당되지 않는다. 따라서, 필요없게 된 메모리 영역만 해방하고, 해방한 영역을 빈 영역으로서 용이하게 재이용하는 것이 가능해지므로, 인코더(20) 및 디코더(30)의 처리 중에서의 화상 사이즈의 변경에 대하여 유연하게 대응하는 것이 가능하게 된다.
또한, 인코더(20) 및 디코더(30)는, 화상 메모리(40)의 사양이나 물리 어드레스를 인식하지 않고, 메모리 영역 관리부(51)로부터 수취한 화상 메모리 요소의 식별 ID만을 이용하여, 화상 메모리(40)에의 데이터의 기입 및 판독을 용이하게 행하는 것이 가능하게 된다. 따라서, 인코더(20) 및 디코더(30)의 회로 규모나 제조 코스트를 줄일 수 있다.
또한, 룩업 테이블 설정부(54) 및 데이터 포맷 설정부(55)가, 확보된 메모리 영역의 사용이 가능해지도록, 화상 메모리(40)의 하드웨어 I/F에 맞추어 필요한 설정을 행하기 때문에, 화상 메모리(40)의 사양이 변경되었을 때에는, 이들 기능 블 록의 처리 수순만 변경함으로써, 시스템을 유연하게 대응하는 것이 가능하게 된다.
[다른 실시예]
도 23은, 본 발명의 제2 실시예에 따른 화상 처리 장치의 주요부 구성을 도시하는 블록도이다.
도 23에 도시하는 화상 처리 장치에서는, 2개의 인코더(20a 및 20b)에 의해 병행하여 인코드를 행하는 것이 가능하게 되어 있다. 예를 들면, 2개의 인코더(20a 및 20b)에 대하여, 촬상 화상 등의 동일한 동화상 데이터 및 음성 데이터를 공급하고, 각각에 상이한 화상 사이즈에서의 인코드를 실행시키며, 한쪽 부호화 스트림을 자기 테이프에 기록하고, 다른쪽을 메모리 카드 등의 다른 기록 매체에 기록하거나, 혹은 네트워크를 통해 외부 기기에 송신하는 것이 가능하게 되어 있다.
이 화상 처리 장치에서는, 제1 실시예와 마찬가지로, 인코더(20a 및 20b)에 의한 화상 메모리(40)로의 액세스는, 메모리 제어부(50)를 통해 행해진다. 이것에 의해, 한쪽 인코드를 속행시킨 채로, 다른쪽 인코드를 정지시키고 화상 사이즈를 변경하고, 인코드를 재개시키는 것이 가능하게 된다.
도 24는, 본 발명의 제3 실시예에 따른 화상 처리 장치의 주요부 구성을 도시하는 블록도이다.
도 24에 도시하는 화상 처리 장치에서는, 2개의 디코더(30a 및 30b)에 의해 병행하여 디코드를 행하는 것이 가능하게 되어 있다. 예를 들면, 2개의 디코더(30a 및 30b)에 대하여, 각각 상이한 부호화 스트림을 공급하여 디코드를 병행하여 실행시키고, 쌍방으로부터 출력되는 동화상 데이터를 합성하여, 1개의 화면에 합성 화상을 표시시키는 것이 가능하게 되어 있다.
이 화상 처리 장치에서는, 제1 실시예와 마찬가지로, 디코더(30a 및 30b)에 의한 화상 메모리(40)로의 액세스는, 메모리 제어부(50)를 통해 행해진다. 이것에 의해, 한쪽 디코드를 속행시킨 채로, 다른쪽 디코드를 정지시키고 화상 사이즈를 변경한 후, 디코드를 재개시키는 것이 가능하게 된다.
또한, 본 발명은, 동화상의 인코드·디코드에 한하지 않고, 복수 계통의 화상 처리를 동일한 화상 메모리를 공용하여 실행하는 경우에 적용하는 것이 가능하다. 이러한 화상 처리로서는, 예를 들면 화상의 확대·축소, 합성, 화질 보정 등이 적용 가능하다. 또한, 1 계통의 화상 처리를 행하는 경우에 본 발명을 적용한 경우에도, 화상 메모리의 사양에 관계없이 화상 처리 엔진의 구성이 간소화되는 등의 효과가 얻어진다.
또한, 본 발명은, 화상 처리나 화상 메모리로의 액세스 관리 등의 처리가, OS를 탑재하지 않은 내장형 시스템에 의해 실행되는 경우에 특히 적합하다. 그러나, 범용 OS를 탑재한 내장형 시스템에 본 발명을 적용하는 것도 가능하다. 이 경우, 메모리 제어부(50)에 상당하는 처리 프로그램이 범용 OS 상에서 실행되지만, 이 프로그램은 화상 메모리 관리에 특화되어 있기 때문에, 범용 OS에 의한 화상 메모리의 관리 처리보다 성능이 우수하다고 할 수 있다.
덧붙여서, 상기 각 실시예에서 나타낸 메모리 제어부(50)의 처리 기능은, 컴퓨터에 의해 실현할 수 있다. 그 경우, 메모리 제어부(50)가 가지는 기능의 처리 내용을 기술한 프로그램이 제공된다. 그 프로그램을 컴퓨터로 실행함으로써, 상기 처리 기능이 컴퓨터 상에서 실현된다. 처리 내용을 기술한 프로그램은, 컴퓨터에 의해 판독 가능한 기록 매체에 기록해둘 수 있다. 이러한 기록 매체로서는, 자기 기록 장치, 광 디스크, 광 자기 기록 매체, 반도체 메모리 등이 있다.
프로그램을 유통시키는 경우에는, 예를 들면 반도체 메모리 등으로 이루어지는 가반형 기록 매체에 그 프로그램이 기록되며, 이 가반형 기록 매체가 판매된다. 또한, 프로그램을 서버 컴퓨터의 기억 장치에 저장해두고, 네트워크를 통해, 서버 컴퓨터로부터 다른 컴퓨터로 그 프로그램을 전송할 수도 있다.
프로그램을 실행하는 컴퓨터는, 예를 들면 가반형 기록 매체에 기록된 프로그램 또는 서버 컴퓨터로부터 전송된 프로그램을 자기의 기억 장치에 저장한다. 그리고, 컴퓨터는, 자신의 기억 장치로부터 프로그램을 판독하여, 프로그램에 따른 처리를 실행한다. 덧붙여서, 컴퓨터는, 가반형 기록 매체로부터 직접 프로그램을 판독하여, 그 프로그램에 따른 처리를 실행할 수도 있다.
본 발명에 따르면, 복수의 화상 처리 수단의 각각이 화상 메모리 내의 메모리 영역의 어드레스 등을 인식하여 사용 상태를 관리하지 않고, 단순히 메모리 영역 정보를 지정함으로써, 대응하는 메모리 영역에 액세스하여, 화상 데이터의 기입 및 판독을 행하는 것이 가능하게 된다. 또한, 화상 사이즈에 대응하는 메모리 영역이 화상 메모리 내에 개별적으로 할당되기 때문에, 화상 사이즈를 변경한 경우에도, 할당한 영역을 일단 해방하고 빈 영역으로 설정하며, 그 빈 영역을 상이한 화상 사이즈에 대응하는 메모리 영역으로서 용이하게 재이용하는 것이 가능하게 된 다. 따라서, 각 화상 처리 수단의 처리 부담을 높이지 않고 임의의 화상 처리 수단에서 화상 사이즈가 변경된 경우에도, 다른 화상 처리 수단의 처리를 중단하지 않고, 필요한 메모리 영역을 다시 확보하여 이용시키는 것이 가능하게 된다.

Claims (19)

  1. 복수의 화상 처리 수단에 의해 1개의 화상 메모리를 작업 영역으로서 공용하여, 상기 각 화상 처리 수단에 의한 처리를 병행하여 실행하기 위한 메모리 관리 방법에 있어서,
    메모리 영역 확보 수단이, 복수의 상기 화상 처리 수단의 각각의 처리를 위해 개별적으로 지정되는 화상 사이즈 및 화상 갯수의 입력을 받아서, 상기 화상 사이즈에 대응하는 메모리 영역을 상기 화상 메모리 상의 빈 영역에 상기 화상 갯수분만큼 개별적으로 할당하여 확보하고, 확보한 상기 메모리 영역을 나타내는 어드레스를 출력하는 메모리 영역 확보 단계와,
    메모리 영역 관리 수단이, 상기 메모리 영역 확보 단계에서 확보된 상기 각 메모리 영역의 식별 정보와, 적어도 상기 어드레스를 포함하는, 상기 메모리 영역에 액세스하기 위한 액세스 정보의 대응 관계를, 상기 메모리 영역마다 기억한 메모리 영역 정보를 생성하는 메모리 영역 정보 생성 단계와,
    상기 메모리 영역 관리 수단이, 상기 각 메모리 영역에 대한 상기 각 화상 처리 수단으로부터의 사용 요구 및 반환 요구를 접수하여, 상기 각 메모리 영역의 사용 상태를 상기 메모리 영역 정보를 이용하여 관리하는 메모리 영역 관리 단계
    를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  2. 제1항에 있어서,
    상기 화상 처리 수단의 처리가 정지되면, 상기 메모리 영역 관리 수단이, 상기 화상 처리 수단의 처리를 위해 확보된 상기 메모리 영역을 다시 빈 영역으로 설정함과 함께, 대응하는 상기 메모리 영역 정보를 소거하는 메모리 영역 해방 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
  3. 제1항에 있어서,
    상기 메모리 영역 관리 단계에서는, 대응하는 상기 화상 처리 수단마다, 상기 화상 처리 수단에 의해 사용 중인 상기 메모리 영역에 대응하는 상기 메모리 영역 정보를 포함하는 제1 선형 리스트와, 미사용된 상기 메모리 영역에 대응하는 상기 메모리 영역 정보를 포함하는 제2 선형 리스트를 이용하여, 상기 각 메모리 영역의 사용 상태를 관리하는 것을 특징으로 하는 메모리 관리 방법.
  4. 제3항에 있어서,
    상기 메모리 영역 정보 생성 단계는, 상기 메모리 영역 확보 단계에서 확보된 상기 메모리 영역에 대응하는 상기 메모리 영역 정보를 상기 제2 선형 리스트에 순차 접속하는 단계를 포함하며,
    상기 메모리 영역 관리 단계는, 상기 화상 처리 수단으로부터의 상기 사용 요구를 받으면, 상기 제2 선형 리스트의 선두의 상기 메모리 영역 정보를 추출하여, 상기 제1 선형 리스트의 최후미에 접속함과 함께, 상기 메모리 영역 정보를 식별하기 위한 식별 번호를 요구원인 상기 화상 처리 수단으로 출력하는 단계를 포함 하는 것을 특징으로 하는 메모리 관리 방법.
  5. 제4항에 있어서,
    상기 메모리 영역 관리 단계는, 상기 화상 처리 수단으로부터 상기 식별 번호가 지정된 상기 반환 요구를 받으면, 지정된 상기 식별 번호에 해당하는 상기 메모리 영역 정보를 상기 제1 선형 리스트로부터 추출하여, 상기 제2 선형 리스트의 최후미에 접속하는 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
  6. 제5항에 있어서,
    상기 화상 처리 수단의 처리가 정지되면, 상기 메모리 영역 관리 수단이, 대응하는 상기 제2 선형 리스트 상의 상기 메모리 영역 정보를 소거함과 함께, 상기 메모리 영역 정보에 대응하는 상기 메모리 영역을 빈 영역으로 설정하는 메모리 영역 해방 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
  7. 제1항에 있어서,
    상기 메모리 영역 관리 단계는, 상기 화상 처리 수단으로부터 상기 메모리 영역을 지정한 상기 화상 메모리에 대한 액세스 요구를 받으면, 지정된 상기 메모리 영역에 대응하는 상기 메모리 영역 정보에 의해 대응된 상기 액세스 정보를 이용하여 상기 화상 메모리에 액세스하고, 지정된 상기 메모리 영역과 요구원인 상기 화상 처리 장치 사이에서 화상 데이터를 전송하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  8. 제1항에 있어서,
    상기 메모리 영역 확보 단계에서는, 상기 화상 메모리 상의 단위 메모리 영역을 이분 트리 구조의 최하층의 노드에 대응하여 관리하며, 상기 화상 사이즈가 지정되면, 지정된 상기 화상 사이즈분의 화상 데이터를 저장 가능한 1개 이상의 상기 단위 메모리 영역이 최하층의 자(子) 노드에 대응되어 있는 상기 이분 트리 구조 내의 노드를 추출하며, 추출한 노드를 나타내는 노드 번호를 상기 메모리 영역 관리 수단으로 출력함으로써, 지정된 상기 화상 사이즈에 대응하는 상기 메모리 영역을 확보하고,
    상기 메모리 영역 관리 단계에서는, 상기 메모리 영역 확보 단계에서 출력된 상기 노드 번호를 상기 메모리 영역 정보 내에 기억하는 것을 특징으로 하는 메모리 관리 방법.
  9. 제1항에 있어서,
    상기 메모리 영역 확보 단계에서는, 확보한 상기 메모리 영역을 나타내는 상기 어드레스로서 상기 메모리 영역의 선두 어드레스를 출력하며,
    상기 액세스 정보는, 상기 선두 어드레스와, 상기 선두 어드레스에 의해 나타나는 상기 메모리 영역에 대응하는 화상 사이즈를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  10. 복수의 화상 처리 수단에 의해 1개의 화상 메모리를 작업 영역으로서 공용하여, 상기 각 화상 처리 수단에 의한 처리를 병행하여 실행하는 것이 가능한 화상 처리 장치에 있어서,
    복수의 상기 화상 처리 수단의 각각의 처리를 위해 개별적으로 지정되는 화상 사이즈 및 화상 갯수의 입력을 받아서, 상기 화상 사이즈에 대응하는 메모리 영역을 상기 화상 메모리 상의 빈 영역에 상기 화상 갯수분만큼 개별적으로 할당하여 확보하고, 확보한 상기 메모리 영역을 나타내는 어드레스를 출력하는 메모리 영역 확보 수단과,
    상기 메모리 영역 확보 수단에 의해 확보된 상기 각 메모리 영역의 식별 정보와, 적어도 상기 어드레스를 포함하는, 상기 메모리 영역에 액세스하기 위한 액세스 정보의 대응 관계를, 상기 메모리 영역마다 기억한 메모리 영역 정보를 보유함과 함께, 상기 각 메모리 영역에 대한 상기 각 화상 처리 수단으로부터의 사용 요구 및 반환 요구를 접수하여, 상기 각 메모리 영역의 사용 상태를 상기 메모리 영역 정보를 이용하여 관리하는 메모리 영역 관리 수단
    을 갖는 것을 특징으로 하는 화상 처리 장치.
  11. 제10항에 있어서,
    상기 메모리 영역 관리 수단은, 상기 화상 처리 수단의 처리가 정지되면, 상기 화상 처리 수단의 처리를 위해 확보된 상기 메모리 영역의 해방 요구를 상기 메 모리 영역 확보 수단으로 출력하여, 대응하는 상기 메모리 영역 정보를 소거하며,
    상기 메모리 영역 확보 수단은, 상기 메모리 영역 관리 수단으로부터의 상기 해방 요구를 받으면, 대응하는 상기 메모리 영역을 다시 빈 영역으로 설정하는 것을 특징으로 하는 화상 처리 장치.
  12. 제10항에 있어서,
    상기 메모리 영역 관리 수단은, 대응하는 상기 화상 처리 수단마다, 상기 화상 처리 수단에 의해 사용 중인 상기 메모리 영역에 대응하는 상기 메모리 영역 정보를 포함하는 제1 선형 리스트와, 미사용된 상기 메모리 영역에 대응하는 상기 메모리 영역 정보를 포함하는 제2 선형 리스트를 이용하여, 상기 각 메모리 영역의 사용 상태를 관리하는 것을 특징으로 하는 화상 처리 장치.
  13. 제12항에 있어서,
    상기 메모리 영역 관리 수단은, 상기 메모리 영역 확보 수단에 의해 확보된 상기 메모리 영역에 대응하는 상기 메모리 영역 정보를 상기 제2 선형 리스트에 순차 접속하며, 상기 화상 처리 수단으로부터의 상기 사용 요구를 받으면, 상기 제2 선형 리스트의 선두의 상기 메모리 영역 정보를 추출하여, 상기 제1 선형 리스트의 최후미에 접속함과 함께, 상기 메모리 영역 정보를 식별하기 위한 식별 번호를 요구원인 상기 화상 처리 수단으로 출력하는 것을 특징으로 하는 화상 처리 장치.
  14. 제13항에 있어서,
    상기 메모리 영역 관리 수단은, 상기 화상 처리 수단으로부터 상기 식별 번호가 지정된 상기 반환 요구를 받으면, 지정된 상기 식별 번호에 해당하는 상기 메모리 영역 정보를 상기 제1 선형 리스트로부터 추출하여, 상기 제2 선형 리스트의 최후미에 접속하는 것을 특징으로 하는 화상 처리 장치.
  15. 제14항에 있어서,
    상기 메모리 영역 관리 수단은, 상기 화상 처리 수단의 처리가 정지되면, 대응하는 상기 제2 선형 리스트 상의 상기 메모리 영역 정보에 대응하는 상기 메모리 영역의 해방 요구를 상기 메모리 영역 확보 수단으로 출력하고, 상기 메모리 영역 정보를 소거하며,
    상기 메모리 영역 확보 수단은, 상기 메모리 영역 관리 수단으로부터 상기 해방 요구에 따라, 대응하는 상기 메모리 영역을 빈 영역으로 설정하는 것을 특징으로 하는 화상 처리 장치.
  16. 제10항에 있어서,
    상기 메모리 영역 관리 수단은, 상기 화상 처리 수단으로부터 상기 메모리 영역을 지정한 상기 화상 메모리에 대한 액세스 요구를 받으면, 지정된 상기 메모리 영역에 대응하는 상기 메모리 영역 정보에 의해 대응된 상기 액세스 정보를 이용하여 상기 화상 메모리에 액세스하고, 지정된 상기 메모리 영역과 요구원인 상기 화상 처리 장치 사이에서 화상 데이터를 전송하는 것을 특징으로 하는 화상 처리 장치.
  17. 제10항에 있어서,
    상기 메모리 영역 확보 수단은, 상기 화상 메모리 상의 단위 메모리 영역을 이분 트리 구조의 최하층의 노드에 대응하여 관리하며, 상기 화상 사이즈가 지정되면, 지정된 상기 화상 사이즈분의 화상 데이터를 저장 가능한 1개 이상의 상기 단위 메모리 영역이 최하층의 자 노드에 대응되어 있는 상기 이분 트리 구조 내의 노드를 추출하며, 추출한 노드를 나타내는 노드 번호를 상기 메모리 영역 관리 수단으로 출력함으로써, 지정된 상기 화상 사이즈에 대응하는 상기 메모리 영역을 확보하고,
    상기 메모리 영역 관리 수단은, 상기 메모리 영역 확보 수단으로부터의 상기 노드 번호를 상기 메모리 영역 정보 내에 기억하는 것을 특징으로 하는 화상 처리 장치.
  18. 제10항에 있어서,
    상기 메모리 영역 확보 수단은, 확보한 상기 메모리 영역을 나타내는 상기 어드레스로서 상기 메모리 영역의 선두 어드레스를 출력하며,
    상기 액세스 정보는, 상기 선두 어드레스와, 상기 선두 어드레스에 의해 나타나는 상기 메모리 영역에 대응하는 화상 사이즈를 포함하는 것을 특징으로 하는 화상 처리 장치.
  19. 복수의 화상 처리 수단에 의해 1개의 화상 메모리를 작업 영역으로서 공용하여, 상기 각 화상 처리 수단에 의한 처리를 병행하여 실행하기 위한 메모리 관리 처리를 컴퓨터에 실행시키는 메모리 관리 프로그램에 있어서,
    복수의 상기 화상 처리 수단의 각각의 처리를 위해 개별적으로 지정되는 화상 사이즈 및 화상 갯수의 입력을 받아서, 상기 화상 사이즈에 대응하는 메모리 영역을 상기 화상 메모리 상의 빈 영역에 상기 화상 갯수분만큼 개별적으로 할당하여 확보하고, 확보한 상기 메모리 영역을 나타내는 어드레스를 출력하는 메모리 영역 확보 단계와,
    상기 메모리 영역 확보 단계에서 확보된 상기 각 메모리 영역의 식별 정보와, 적어도 상기 어드레스를 포함하는, 상기 메모리 영역에 액세스하기 위한 액세스 정보의 대응 관계를, 상기 메모리 영역마다 기억한 메모리 영역 정보를 생성하는 메모리 영역 정보 생성 단계와,
    상기 각 메모리 영역에 대한 상기 각 화상 처리 수단으로부터의 사용 요구 및 반환 요구를 접수하여, 상기 각 메모리 영역의 사용 상태를 상기 메모리 영역 정보를 이용하여 관리하는 메모리 영역 관리 단계
    를 포함하는 처리를 상기 컴퓨터에 실행시키는 것을 특징으로 하는 메모리 관리 프로그램.
KR20050012807A 2004-02-17 2005-02-16 메모리 관리 방법, 화상 처리 장치 및 메모리 관리 프로그램 KR20060042002A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00040177 2004-02-17
JP2004040177A JP2005234687A (ja) 2004-02-17 2004-02-17 メモリ管理方法、画像処理装置およびメモリ管理プログラム

Publications (1)

Publication Number Publication Date
KR20060042002A true KR20060042002A (ko) 2006-05-12

Family

ID=34697989

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20050012807A KR20060042002A (ko) 2004-02-17 2005-02-16 메모리 관리 방법, 화상 처리 장치 및 메모리 관리 프로그램

Country Status (5)

Country Link
US (1) US20050180643A1 (ko)
EP (1) EP1564998A3 (ko)
JP (1) JP2005234687A (ko)
KR (1) KR20060042002A (ko)
CN (1) CN100420296C (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3989472B2 (ja) * 2004-07-30 2007-10-10 シャープ株式会社 画像データ処理回路およびそれを備えてなる画像処理装置
US7769274B2 (en) * 2005-05-06 2010-08-03 Mediatek, Inc. Video processing and optical recording using a shared memory
KR100867640B1 (ko) 2007-02-06 2008-11-10 삼성전자주식회사 다중 접근 경로를 가지는 이미지 프로세싱 메모리를포함하는 시스템 온 칩
JP4874162B2 (ja) * 2007-04-27 2012-02-15 ルネサスエレクトロニクス株式会社 データ展開装置及びデータ展開方法
JP4917561B2 (ja) * 2008-03-18 2012-04-18 株式会社リコー 画像処理装置
JP2010160585A (ja) * 2009-01-06 2010-07-22 Sony Corp サーバ装置、情報処理方法、情報処理システム
GB2483282B (en) * 2010-09-03 2017-09-13 Advanced Risc Mach Ltd Data compression and decompression using relative and absolute delta values
CN102956238B (zh) * 2011-08-19 2016-02-10 杜比实验室特许公司 用于在音频帧序列中检测重复模式的方法及设备
JP5972687B2 (ja) 2012-07-02 2016-08-17 株式会社Nttドコモ 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法及び動画像予測復号プログラム
JP2014013506A (ja) * 2012-07-04 2014-01-23 Canon Inc 情報処理装置、制御方法、及びプログラム
CN103731448B (zh) * 2012-10-11 2017-09-26 腾讯科技(深圳)有限公司 一种压缩图片的方法和系统
US9299126B2 (en) * 2013-09-12 2016-03-29 Arm Limited Image processing apparatus and a method of storing encoded data blocks generated by such an image processing apparatus
JP6426648B2 (ja) * 2016-04-12 2018-11-21 株式会社Nttドコモ 動画像予測復号方法及び動画像予測復号装置
CN106354811A (zh) * 2016-08-29 2017-01-25 苏州蓝海彤翔系统科技有限公司 一种处理图片输出异常状态的方法、装置及系统
JP2020167492A (ja) * 2019-03-29 2020-10-08 株式会社デンソーテン バッファ管理装置
CN112188034A (zh) * 2020-09-29 2021-01-05 北京小米移动软件有限公司 一种图像处理方法、装置、终端设备及介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5915041A (en) * 1993-03-04 1999-06-22 Unisys Corporation Method and apparatus for efficiently decoding variable length encoded data
JP3278297B2 (ja) * 1994-07-20 2002-04-30 富士通株式会社 データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
US5920352A (en) * 1994-10-28 1999-07-06 Matsushita Electric Industrial Co., Ltd. Image memory storage system and method for a block oriented image processing system
US7190284B1 (en) * 1994-11-16 2007-03-13 Dye Thomas A Selective lossless, lossy, or no compression of data based on address range, data type, and/or requesting agent
US5867166A (en) * 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
US6005582A (en) * 1995-08-04 1999-12-21 Microsoft Corporation Method and system for texture mapping images with anisotropic filtering
JPH09322121A (ja) 1996-05-27 1997-12-12 Sony Corp 高能率符号化された画像信号の復号装置
WO1998044745A1 (en) * 1997-03-31 1998-10-08 Sharp Kabushiki Kaisha Apparatus and method for simultaneous video decompression
EP0936813A1 (en) * 1998-02-16 1999-08-18 CANAL+ Société Anonyme Processing of digital picture data in a decoder
US6366289B1 (en) * 1998-07-17 2002-04-02 Microsoft Corporation Method and system for managing a display image in compressed and uncompressed blocks
US6208354B1 (en) * 1998-11-03 2001-03-27 Ati International Srl Method and apparatus for displaying multiple graphics images in a mixed video graphics display
US6411957B1 (en) * 1999-06-30 2002-06-25 Arm Limited System and method of organizing nodes within a tree structure
BR0015959A (pt) * 1999-12-14 2002-08-06 Scientific Atlanta Sistema e método para o processamento de vìdeo adaptativo com alocação de recursos coordenados
US6567091B2 (en) * 2000-02-01 2003-05-20 Interactive Silicon, Inc. Video controller system with object display lists
US6477612B1 (en) * 2000-02-08 2002-11-05 Microsoft Corporation Providing access to physical memory allocated to a process by selectively mapping pages of the physical memory with virtual memory allocated to the process
GB0007493D0 (en) * 2000-03-28 2000-05-17 Tao Group Ltd Garbage collection
US6940909B2 (en) * 2003-07-29 2005-09-06 Lsi Logic Corporation Video decoding during I-frame decode at resolution change

Also Published As

Publication number Publication date
CN1658665A (zh) 2005-08-24
EP1564998A2 (en) 2005-08-17
US20050180643A1 (en) 2005-08-18
CN100420296C (zh) 2008-09-17
EP1564998A3 (en) 2007-12-26
JP2005234687A (ja) 2005-09-02

Similar Documents

Publication Publication Date Title
KR20060042002A (ko) 메모리 관리 방법, 화상 처리 장치 및 메모리 관리 프로그램
JPH10172237A (ja) 情報記憶制御方法、情報記憶制御装置、およびその制御機能を有する情報記憶装置
CN102508784A (zh) 视频监控设备中闪存卡的数据存储方法及其系统
US20060088279A1 (en) Reproduction apparatus, data processing system, reproduction method, program, and storage medium
JPWO2008072590A1 (ja) ライトワンス記録装置、コントローラ、アクセス装置、及びライトワンス記録システム
US8010746B2 (en) Data processing apparatus and shared memory accessing method
JP2006350828A (ja) ストリーム制御装置
WO2011121870A1 (ja) データ記録装置、及びデータ記録方法
JP2008192224A (ja) データ及びファイルシステム情報の記録装置及び記録方法
JP2008193345A (ja) 編集装置及び編集方法
JP2011159240A (ja) 記録装置及びその制御方法
JP5375483B2 (ja) 動き検出回路
JP2000267904A (ja) データ記録装置及び方法
KR101103308B1 (ko) 메뉴를 생성하기 위한 방법 및 디바이스와, 레코딩 매체
JP2008176455A (ja) 情報記録装置、コントローラ、アクセス装置、及びアクセス速度保証システム
JP2003059189A (ja) バッファ管理方法
CN101071617B (zh) 再现装置和再现方法
CN113176942A (zh) 一种共享缓存的方法、装置及电子设备
JP7149809B2 (ja) 画像記録装置、その制御方法およびプログラム
US8565584B2 (en) Editing apparatus and editing method
KR101035732B1 (ko) 메모리 액세스 인터페이스의 변환 방법 및 장치
TW201347520A (zh) 晶片內/晶片外記憶體管理
US7627232B2 (en) Reproduction apparatus, data processing system, reproduction method, program, and storage medium
JPH11136681A (ja) 動画像復号装置及び方法
CN115718668A (zh) 一种车辆、数据传输系统及其控制方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid