KR101401336B1 - 화상처리장치 및 화상처리방법 - Google Patents
화상처리장치 및 화상처리방법 Download PDFInfo
- Publication number
- KR101401336B1 KR101401336B1 KR1020117009478A KR20117009478A KR101401336B1 KR 101401336 B1 KR101401336 B1 KR 101401336B1 KR 1020117009478 A KR1020117009478 A KR 1020117009478A KR 20117009478 A KR20117009478 A KR 20117009478A KR 101401336 B1 KR101401336 B1 KR 101401336B1
- Authority
- KR
- South Korea
- Prior art keywords
- image
- area
- data
- display
- unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/387—Composing, repositioning or otherwise geometrically modifying originals
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/02—Handling of images in compressed format, e.g. JPEG, MPEG
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/122—Tiling
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/34—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
- G09G5/346—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling for systems having a bit-mapped display memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/395—Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/399—Control of the bit-mapped memory using two or more bit-mapped memories, the operations of which are switched in time, e.g. ping-pong buffers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Controls And Circuits For Display Device (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
Abstract
하드디스크 드라이브(50)에 저장되어 있는 다른 해상도의 압축화상 데이터는 대략 일정한 데이터 사이즈의 블록으로 분할해 둔다. 그리고 소정의 시간간격으로 필요한 블록이 메인 메모리(60)에 저장되어 있는지 확인하여, 저장되어 있지 않다면 메인 메모리(60)에 로딩한다(S10). 다음으로 로딩한 압축화상 데이터 중 표시에 필요한 영역의 화상, 또는 필요할 것으로 예측되는 영역의 화상의 데이터를 디코딩하여 버퍼 메모리(70)에 저장한다(S12). 표시용 버퍼인 버퍼영역(72)에 저장된 화상 중 표시영역(68)의 화상을, 프레임 메모리(90)에 묘화한다(S14). 디코딩이 완료된 타이밍이나 표시영역(68)의 변경량 등에 따라 표시용 버퍼와 디코딩용 버퍼를 전환한다(S16).
Description
본 발명은 디스플레이에 표시하는 화상을 확대/축소, 또는 상하좌우로 이동시키는 화상처리기술에 관한 것이다.
게임 프로그램을 실행할 뿐만 아니라 동영상을 재생할 수 있는 가정용 엔터테인먼트 시스템이 제안되어 있다. 이 가정용 엔터테인먼트 시스템에서는 GPU가 폴리곤을 이용한 3차원 화상을 생성한다(예를 들면 특허문헌 1 참조).
한편, 고정세(高精細) 사진 등의 디지털 화상으로부터 생성된 복수의 해상도의 타일화상을 이용해서, 표시화상의 확대/축소 처리나 상하좌우방향의 이동 처리를 실행하는 기술이 제안되어 있다. 이 화상처리기술에서는 원(原)화상 사이즈를 복수 단계로 축소하여 다른 해상도의 화상을 생성하고, 각 계층의 화상을 하나 또는 복수의 타일화상으로 분할하여 원화상을 계층 구조로 표현한다. 통상, 가장 해상도가 낮은 화상은 1개의 타일화상으로 구성되고, 가장 해상도가 높은 원화상은 가장 많은 수의 타일화상으로 구성된다. 화상처리장치는 표시화상의 확대 처리 또는 축소 처리시에, 사용하고 있는 타일화상을 다른 계층의 타일화상으로 전환함으로써, 확대 표시 또는 축소 표시를 신속하게 행하도록 하고 있다.
이러한 화상처리장치에 있어서, 표시영역의 이동이나 화상의 확대, 축소(이후, 그들을 묶어서 '화상변경'이라고 부름)를 사용자가 요구했을 경우, 타일화상의 데이터 읽어내기, 디코딩 등의 처리에 의해, 새로운 화상이 출력될 때까지 간과할 수 없는 시간이 걸리는 경우가 있다. 또한 응답성을 좋게 하기 위해 액세스 속도가 빠른 메모리에 전체 화상 데이터를 저장하려고 하면, 고정세, 고해상도 화상일 경우에는 특히 대용량 메모리가 필요하게 되어, 대응 가능한 화상을 데이터 사이즈로 제한해야만 하는 사태도 발생한다.
본 발명은 이러한 과제를 감안하여 이루어진 것으로서, 그 목적은 사용자로부터의 화상변경 요구에 대한 응답성이 뛰어난 화상처리기술을 제공하는 것에 있다.
본 발명의 어느 양태는 화상처리장치에 관한 것이다. 이 화상처리장치는 화상의 적어도 일부를 디스플레이에 표시하는 화상처리장치로서, 처리 대상인 화상의 압축데이터를 소정의 규칙으로 분할하여 이루어지는 복수의 화상블록을 보유하는 기억장치와, 표시 중인 화상의 영역에 따라 소정의 규칙으로 결정한 필요영역의 데이터를 포함하는 화상블록을 기억장치로부터 메모리에 로딩하는 로딩부와, 사용자로부터의 표시영역의 이동, 확대, 축소 중 어느 요구에 따라, 로딩부가 로딩한 화상블록의 적어도 일부를 메모리로부터 읽어내 디코딩하여, 새로운 표시화상을 생성하는 표시화상 처리부를 구비하는 것을 특징으로 한다.
본 발명의 다른 양태는 화상처리방법에 관한 것이다. 이 화상처리방법은 화상의 적어도 일부를 디스플레이에 표시하는 화상처리방법으로서, 처리 대상인 화상의 압축데이터를 소정의 규칙으로 분할하여 이루어지는 복수의 화상블록을 생성하여 기억장치에 저장하는 스텝과, 표시 중인 화상의 영역에 따라 소정의 규칙으로 결정한 필요영역의 데이터를 포함하는 화상블록을 기억장치로부터 메모리에 로딩하는 스텝과, 사용자로부터의 표시영역의 이동, 확대, 축소 중 어느 요구에 따라, 로딩한 화상블록의 적어도 일부를 메모리로부터 읽어내 디코딩하여, 새로운 표시화상을 생성하는 스텝을 포함하는 것을 특징으로 한다.
본 발명의 또 다른 양태는 화상처리장치에 관한 것이다. 이 화상처리장치는 사용자의 요구에 따라 화상 내의 영역을 디스플레이에 표시하는 화상처리장치로서, 요구에 기초하여 필요한 영역의 압축화상 데이터를 메모리로부터 읽어내 디코딩하는 디코딩부와, 디코딩부가 디코딩한 화상을 저장하는 버퍼 메모리와, 버퍼 메모리에 저장한 화상의 적어도 일부를 읽어내, 표시할 영역을 묘화(描畵;rendering)하는 표시화상 처리부를 구비하고, 디코딩부는 새로운 화상을 버퍼 메모리에 저장할 때, 그때까지 저장되어 있던 화상과 새로운 화상과의 중복영역을 특정하는 중복영역 취득부와, 새로운 화상 중 중복영역을 제외한 부분영역을 포함하는 영역의 압축화상 데이터를 디코딩하는 부분영역 디코딩부와, 그때까지 저장되어 있던 화상 중 중복영역과, 부분영역 디코딩부가 디코딩한 부분영역을 연결시켜 버퍼 메모리에 저장하는 디코딩화상 저장부를 구비하는 것을 특징으로 한다.
본 발명의 또 다른 양태는 화상처리방법에 관한 것이다. 이 화상처리방법은 사용자의 요구에 따라 화상 내의 영역을 디스플레이에 표시하는 화상처리방법으로서, 요구에 기초하여 필요한 영역의 압축화상 데이터를 새로 디코딩하여 버퍼 메모리에 저장할 때, 그때까지 저장되어 있던 화상과 새로운 화상과의 중복영역을 특정하는 스텝과, 새로운 화상 중 중복영역을 제외한 부분영역을 포함하는 영역의 압축화상 데이터를 메인 메모리로부터 읽어내 디코딩하는 스텝과, 그때까지 저장되어 있던 화상 중 중복영역과, 새로 디코딩한 부분영역을 연결시켜 버퍼 메모리에 저장하는 스텝과, 버퍼 메모리에 저장한 화상의 적어도 일부를 읽어내, 표시할 영역을 묘화하는 스텝을 포함하는 것을 특징으로 한다.
한편, 이상의 구성 요소의 임의의 조합, 본 발명의 표현을 방법, 장치, 시스템, 컴퓨터 프로그램 등의 사이에서 변환시킨 것도 또한 본 발명의 양태로서 유효하다.
본 발명에 따르면, 사용자로부터의 화상변경 요구에 대하여 뛰어난 응답성을 가지는 화상처리장치를 제공할 수 있다.
도 1은 본 발명의 실시형태에 따른 화상처리 시스템의 사용환경을 나타내는 도면이다.
도 2는 도 1의 화상처리 시스템에 적용할 수 있는 입력장치의 외관구성을 나타내는 도면이다.
도 3은 본 실시형태에 있어서 사용하는 화상 데이터의 계층 구조를 나타내는 도면이다.
도 4는 본 실시형태에 있어서의 화상처리장치의 구성을 나타내는 도면이다.
도 5는 본 실시형태에 있어서의 화상 데이터의 흐름을 모식적으로 나타내는 도면이다.
도 6은 본 실시형태에 있어서의 제어부의 구성을 상세하게 나타내는 도면이다.
도 7은 본 실시형태에 있어서의 압축데이터 분할부의 구성을 상세하게 나타내는 도면이다.
도 8은 본 실시형태의 계층 데이터에 있어서의 각 계층의 화상을 모식적으로 나타내는 도면이다.
도 9는 본 실시형태에 있어서의 화상블록 생성부가, 도 8의 계층 데이터를 화상블록에 정리하는 모습을 모식적으로 나타내는 도면이다.
도 10은 본 실시형태에 있어서의 블록 분할 수법을 설명하기 위한 원화상의 예를 나타내는 도면이다.
도 11은 본 실시형태에 있어서 타일화상에 대하여 래스터(raster)순으로 식별번호를 부여했을 경우의 분할 모습을 나타내는 도면이다.
도 12는 본 실시형태에 있어서 'Z형상'순으로 타일화상에 식별번호를 부여했을 경우의 분할 모습을 나타내는 도면이다.
도 13은 본 실시형태에 있어서 정방형의 매크로타일(macrotile)순으로 타일화상에 식별번호를 부여했을 경우의 분할 모습을 나타내는 도면이다.
도 14는 본 실시형태에 있어서 스트립(strip)형상 매크로타일순으로 타일화상에 식별번호를 부여했을 경우의 분할 모습을 나타내는 도면이다.
도 15는 화상블록의 경계선이 격자형상으로 구성되어 있을 때의, 화상블록과 표시화상의 묘화영역의 관계를 모식적으로 나타내는 도면이다.
도 16은 본 실시형태에 있어서 화상블록의 경계선을 T자로(T-shaped intersection)형상으로 했을 때의, 화상블록과 표시화상의 묘화영역의 관계를 모식적으로 나타내는 도면이다.
도 17은 본 실시형태에 있어서 고해상도 화상을, 저해상도 화상의 확대화상과의 차분(差分;differentail)화상으로서 압축하는 수법을 설명하기 위한 도면이다.
도 18은 본 실시형태에 있어서 로딩해야 할 화상블록을 결정하여 로딩을 실시하는 처리순서를 나타내는 플로우 차트이다.
도 19는 도 18의 S42에 있어서 메인 메모리에 저장되어 있는지 아닌지를 판정하는 대상인 필요영역을 결정할 때의 개념도이다.
도 20은 본 실시형태에 있어서 미리읽기(prefetch) 처리부가 행하는 미리읽기 처리를 설명하기 위한 도면이다.
도 21은 본 실시형태에 있어서 미리읽기 처리부 및 디코딩부가 화상의 디코딩을 실시할 때의 처리순서를 나타내는 플로우 차트이다.
도 22는 본 실시형태의 버퍼 메모리의 디코딩용 버퍼에 있어서, 새로 저장해야 할 화상이 그때까지 저장되어 있던 화상과 중복부분을 가질 경우의 디코딩부의 기능 블록을 나타내는 도면이다.
도 23은 도 22의 디코딩부가 화상을 디코딩용 버퍼에 저장하는 순서를 모식적으로 나타내는 도면이다.
도 2는 도 1의 화상처리 시스템에 적용할 수 있는 입력장치의 외관구성을 나타내는 도면이다.
도 3은 본 실시형태에 있어서 사용하는 화상 데이터의 계층 구조를 나타내는 도면이다.
도 4는 본 실시형태에 있어서의 화상처리장치의 구성을 나타내는 도면이다.
도 5는 본 실시형태에 있어서의 화상 데이터의 흐름을 모식적으로 나타내는 도면이다.
도 6은 본 실시형태에 있어서의 제어부의 구성을 상세하게 나타내는 도면이다.
도 7은 본 실시형태에 있어서의 압축데이터 분할부의 구성을 상세하게 나타내는 도면이다.
도 8은 본 실시형태의 계층 데이터에 있어서의 각 계층의 화상을 모식적으로 나타내는 도면이다.
도 9는 본 실시형태에 있어서의 화상블록 생성부가, 도 8의 계층 데이터를 화상블록에 정리하는 모습을 모식적으로 나타내는 도면이다.
도 10은 본 실시형태에 있어서의 블록 분할 수법을 설명하기 위한 원화상의 예를 나타내는 도면이다.
도 11은 본 실시형태에 있어서 타일화상에 대하여 래스터(raster)순으로 식별번호를 부여했을 경우의 분할 모습을 나타내는 도면이다.
도 12는 본 실시형태에 있어서 'Z형상'순으로 타일화상에 식별번호를 부여했을 경우의 분할 모습을 나타내는 도면이다.
도 13은 본 실시형태에 있어서 정방형의 매크로타일(macrotile)순으로 타일화상에 식별번호를 부여했을 경우의 분할 모습을 나타내는 도면이다.
도 14는 본 실시형태에 있어서 스트립(strip)형상 매크로타일순으로 타일화상에 식별번호를 부여했을 경우의 분할 모습을 나타내는 도면이다.
도 15는 화상블록의 경계선이 격자형상으로 구성되어 있을 때의, 화상블록과 표시화상의 묘화영역의 관계를 모식적으로 나타내는 도면이다.
도 16은 본 실시형태에 있어서 화상블록의 경계선을 T자로(T-shaped intersection)형상으로 했을 때의, 화상블록과 표시화상의 묘화영역의 관계를 모식적으로 나타내는 도면이다.
도 17은 본 실시형태에 있어서 고해상도 화상을, 저해상도 화상의 확대화상과의 차분(差分;differentail)화상으로서 압축하는 수법을 설명하기 위한 도면이다.
도 18은 본 실시형태에 있어서 로딩해야 할 화상블록을 결정하여 로딩을 실시하는 처리순서를 나타내는 플로우 차트이다.
도 19는 도 18의 S42에 있어서 메인 메모리에 저장되어 있는지 아닌지를 판정하는 대상인 필요영역을 결정할 때의 개념도이다.
도 20은 본 실시형태에 있어서 미리읽기(prefetch) 처리부가 행하는 미리읽기 처리를 설명하기 위한 도면이다.
도 21은 본 실시형태에 있어서 미리읽기 처리부 및 디코딩부가 화상의 디코딩을 실시할 때의 처리순서를 나타내는 플로우 차트이다.
도 22는 본 실시형태의 버퍼 메모리의 디코딩용 버퍼에 있어서, 새로 저장해야 할 화상이 그때까지 저장되어 있던 화상과 중복부분을 가질 경우의 디코딩부의 기능 블록을 나타내는 도면이다.
도 23은 도 22의 디코딩부가 화상을 디코딩용 버퍼에 저장하는 순서를 모식적으로 나타내는 도면이다.
도 1은 본 발명의 실시형태에 따른 화상처리 시스템(1)의 사용환경을 나타낸다. 화상처리 시스템(1)은 화상처리 소프트웨어를 실행하는 화상처리장치(10)와, 화상처리장치(10)에 의한 처리결과를 출력하는 표시장치(12)를 구비한다. 표시장치(12)는 화상을 출력하는 디스플레이 및 음성을 출력하는 스피커를 가지는 텔레비전이어도 된다. 표시장치(12)는 화상처리장치(10)에 유선 케이블로 접속되어도 되고, 또한 무선 LAN(Local Area Network) 등에 의해 무선 접속되어도 된다. 화상처리 시스템(1)에 있어서, 화상처리장치(10)는 케이블(14)을 통해 인터넷 등의 외부 네트워크에 접속하여, 계층화된 압축화상 데이터를 다운로딩하여 취득해도 된다. 한편 화상처리장치(10)는 무선 통신에 의해 외부 네트워크에 접속해도 된다.
화상처리장치(10)는 예를 들면 게임 장치여도 되고, 화상처리용 어플리케이션 프로그램을 로딩함으로써 화상처리기능을 실현해도 된다. 또한 화상처리장치(10)는 퍼스널 컴퓨터여도 되고, 화상처리용 어플리케이션 프로그램을 로딩함으로써 화상처리기능을 실현해도 된다.
화상처리장치(10)는 사용자로부터의 요구에 따라, 표시장치(12)의 디스플레이에 표시하는 화상의 확대/축소 처리나, 상하좌우방향으로의 이동 처리 등, 표시화상을 변경하는 처리를 행한다. 사용자가 디스플레이에 표시된 화상을 보면서 입력장치를 조작하면, 입력장치가 표시화상의 변경요구신호를 화상처리장치(10)에 송신한다.
도 2는 입력장치(20)의 외관구성을 나타낸다. 입력장치(20)는 사용자가 조작 가능한 조작 수단으로서, 십자 키(21), 아날로그 스틱(27a, 27b)과, 4종의 조작 버튼(26)을 구비한다. 4종의 조작 버튼(26)은 ○버튼(22), ×버튼(23), □버튼(24) 및 △버튼(25)으로 구성된다.
화상처리 시스템(1)에 있어서, 입력장치(20)의 조작 수단에는 표시화상의 확대/축소 요구, 및 상하좌우방향으로의 스크롤 요구를 입력하기 위한 기능이 할당된다. 예를 들면, 표시화상의 확대/축소 요구의 입력 기능은 우측의 아날로그 스틱(27b)에 할당된다. 사용자는 아날로그 스틱(27b)을 앞으로 당김으로써 표시화상의 축소 요구를 입력할 수 있고, 또한 앞에서부터 밀어냄으로써 표시화상의 확대 요구를 입력할 수 있다. 또한 표시영역의 이동 요구의 입력 기능은 십자 키(21)에 할당된다. 사용자는 십자 키(21)를 누름으로써, 십자 키(21)를 누른 방향으로의 이동 요구를 입력할 수 있다. 또한 화상변경 요구의 입력 기능은 다른 조작 수단에 할당되어도 되며, 예를 들면 아날로그 스틱(27a)에 스크롤 요구의 입력 기능이 할당되어도 된다.
입력장치(20)는 입력된 화상변경 요구신호를 화상처리장치(10)에 전송하는 기능을 가지며, 본 실시형태에서는 화상처리장치(10)와의 사이에서 무선 통신 가능하게 구성된다. 입력장치(20)와 화상처리장치(10)는 Bluetooth(블루투스)(등록상표) 프로토콜이나 IEEE802.11 프로토콜 등을 이용해서 무선 접속을 확립해도 된다. 한편 입력장치(20)는 화상처리장치(10)와 케이블을 통해 접속하여, 화상변경 요구신호를 화상처리장치(10)에 전송해도 된다.
도 3은 본 실시형태에서 사용하는 화상 데이터의 계층 구조를 나타낸다. 화상 데이터는 깊이(Z축)방향으로 제0계층(30), 제1계층(32), 제2계층(34) 및 제3계층(36)으로 이루어지는 계층 구조를 가진다. 또한 동(同) 도면에서는 4계층만 나타냈지만, 계층수는 이것에 한정되지 않는다. 이하, 이러한 계층 구조를 가지는 화상 데이터를 '계층 데이터'라고 부른다.
도 3에 나타내는 계층 데이터는 사지 트리(quadtree)의 계층 구조를 가지며, 각 계층은 1 이상의 타일화상(38)으로 구성된다. 모든 타일화상(38)은 같은 화소수를 가지는 동일 사이즈로 형성되며, 예를 들면 256×256 화소를 가진다. 각 계층의 화상 데이터는 하나의 화상을 다른 해상도로 표현하고 있으며, 최고 해상도를 가지는 제3계층(36)의 원화상을 복수 단계로 축소하여, 제2계층(34), 제1계층(32), 제0계층(30)의 화상 데이터가 생성된다. 예를 들면 제N계층의 해상도(N은 0 이상의 정수)는 좌우(X축)방향, 상하(Y축)방향 모두, 제(N+1)계층의 해상도의 1/2이어도 된다.
화상처리장치(10)에 있어서, 계층 데이터는 소정의 압축형식으로 압축된 상태로 기억장치에 보유되어 있고, 디스플레이에 표시되기 전에 기억장치로부터 읽혀져서 디코딩된다. 본 실시형태의 화상처리장치(10)는 복수 종류의 압축형식에 대응한 디코딩 기능을 가지며, 예를 들면 S3TC형식, JPEG형식, JPEG2000형식의 압축데이터를 디코딩 가능하게 한다. 계층 데이터에 있어서, 압축 처리는 타일화상 단위로 실행되어도 되고, 또한 동일 계층 또는 복수의 계층에 포함되는 복수의 타일화상 단위로 실행되어도 된다.
계층 데이터의 계층 구조는 도 3에 나타내는 바와 같이, 좌우방향을 X축, 상하방향을 Y축, 깊이방향을 Z축으로 설정하여 가상적인 3차원 공간을 구축한다. 화상처리장치(10)는, 입력장치(20)로부터 공급되는 화상변경 요구신호로부터 표시화상의 변경량을 도출하면, 그 변경량을 이용해서 가상 공간에서의 프레임의 네 모퉁이의 좌표(프레임 좌표)를 도출한다. 가상 공간에서의 프레임 좌표는 후술하는 메인 메모리에의 로딩 및 표시화상의 생성 처리에 이용된다. 또한 가상 공간에서의 프레임 좌표 대신에, 화상처리장치(10)는 계층을 특정하는 정보와, 그 계층에 있어서의 텍스처 좌표(UV 좌표)를 도출해도 된다. 이하, 계층 특정 정보 및 텍스처 좌표의 조합도 프레임 좌표라고 부른다.
도 4는 화상처리장치(10)의 구성을 나타내고 있다. 화상처리장치(10)는 무선 인터페이스(40), 스위치(42), 표시 처리부(44), 하드디스크 드라이브(50), 기록매체 장착부(52), 디스크 드라이브(54), 메인 메모리(60), 버퍼 메모리(70) 및 제어부(100)를 가지고 구성된다. 표시 처리부(44)는 표시장치(12)의 디스플레이에 표시하는 데이터를 버퍼하는 프레임 메모리를 가진다.
스위치(42)는 이더넷(Ethernet) 스위치(이더넷은 등록상표)로서, 외부 기기와 유선 또는 무선으로 접속하여 데이터의 송수신을 실행하는 디바이스이다. 스위치(42)는 케이블(14)을 통해 외부 네트워크에 접속하여, 화상 서버로부터 계층화된 압축화상 데이터를 수신해도 된다. 또한 스위치(42)는 무선 인터페이스(40)에 접속되고, 무선 인터페이스(40)는 소정의 무선 통신 프로토콜로 입력장치(20)와 접속된다. 입력장치(20)에 있어서 사용자로부터 입력된 화상변경 요구신호는 무선 인터페이스(40), 스위치(42)를 경유하여 제어부(100)에 공급된다.
하드디스크 드라이브(50)는 데이터를 기억하는 기억장치로서 기능한다. 스위치(42)를 통해 수신된 압축화상 데이터는 하드디스크 드라이브(50)에 저장된다. 기록매체 장착부(52)는 메모리 카드 등의 리무버블(removable) 기록매체가 장착되면, 리무버블 기록매체로부터 데이터를 읽어낸다. 디스크 드라이브(54)는 읽어내기 전용 ROM 디스크가 장착되면, ROM 디스크를 구동해서 인식하여 데이터를 읽어낸다. ROM 디스크는 광 디스크나 광자기 디스크 등이어도 된다. 압축화상 데이터는 이러한 기록매체들에 저장되어 있어도 된다.
제어부(100)는 멀티코어 CPU를 구비하며, 1개의 CPU 중에 1개의 범용적인 프로세서 코어와, 복수개의 심플한 프로세서 코어를 가진다. 범용 프로세서 코어는 PPU(Power Processing Unit)라고 불리고, 나머지 프로세서 코어는 SPU(Synergistic Processing Unit)라고 불린다.
제어부(100)는 메인 메모리(60) 및 버퍼 메모리(70)에 접속되는 메모리 컨트롤러를 구비한다. PPU는 레지스터를 가지며, 연산 실행 주체로서 메인 프로세서를 구비하고, 실행할 어플리케이션에 있어서의 기본 처리 단위로서의 태스크(task)를 각 SPU에 효율적으로 할당한다. 또한 PPU 자신이 태스크를 실행해도 된다. SPU는 레지스터를 가지며, 연산 실행 주체로서의 서브 프로세서와 로컬적인 기억영역으로서의 로컬 메모리를 구비한다. 로컬 메모리는 버퍼 메모리(70)로서 사용되어도 된다.
메인 메모리(60) 및 버퍼 메모리(70)는 기억장치이며, RAM(랜덤 액세스 메모리)으로 구성된다. SPU는 제어 유닛으로서 전용 DMA(Direct Memory Access) 컨트롤러를 가지며, 메인 메모리(60)와 버퍼 메모리(70) 사이의 데이터 전송을 고속으로 실행할 수 있고, 또한 표시 처리부(44)에 있어서의 프레임 메모리와 버퍼 메모리(70) 사이에서 고속 데이터 전송을 실현할 수 있다. 본 실시형태의 제어부(100)는 복수의 SPU를 병렬 동작시킴으로써 고속의 화상처리기능을 실현한다. 표시 처리부(44)는 표시장치(12)에 접속되며, 사용자로부터의 요구에 따른 화상 처리 결과를 출력한다.
본 실시형태의 화상처리장치(10)는 표시화상의 확대/축소 처리나 표시영역의 이동 처리를 행할 때에 표시화상을 원활하게 변경시키기 위해, 후술하는 규칙에 의해 결정한 압축화상 데이터의 일부를 하드디스크 드라이브(50)에서 메인 메모리(60)로 로딩해 둔다. 또한 메인 메모리(60)에 로딩한 압축화상 데이터의 일부를 더 디코딩하여 버퍼 메모리(70)에 저장해 둔다. 이로 인해, 나중에 필요한 타이밍에, 표시화상의 생성에 사용하는 화상을 순식간에 전환하는 것이 가능하게 된다.
도 5는 본 실시형태에 있어서의 화상 데이터의 흐름을 모식적으로 나타내고 있다. 먼저 계층 데이터는 하드디스크 드라이브(50)에 저장되어 있다. 하드디스크 드라이브(50) 대신에, 기록매체 장착부(52)나 디스크 드라이브(54)에 장착된 기록매체가 보유하고 있어도 된다. 혹은 화상처리장치(10)가 네트워크를 통해 접속된 화상 서버로부터 계층 데이터를 다운로딩하도록 해도 된다. 여기서의 계층 데이터는 상술한 대로, S3TC형식 등에 의한 고정길이 압축, 혹은 JPEG형식 등에 의한 가변길이 압축이 이루어지고 있다.
이 계층 데이터 중 일부의 화상 데이터를 압축한 상태 그대로 메인 메모리(60)에 로딩한다(S1O). 여기서 로딩하는 영역은 현재의 표시화상의 가상 공간에 있어서의 근방이나, 화상의 내용, 사용자의 열람이력 등에 기초하여 높은 빈도로 표시 요구가 이루어질 것으로 예측되는 영역 등, 미리 정한 규칙에 따라 결정한다. 로딩은 화상변경 요구가 이루어졌을 때뿐만 아니라, 예를 들면 소정의 시간간격으로 수시로 실시한다. 이로 인해 로딩 처리가 한 시기에 집중되지 않도록 한다.
또한 로딩하는 압축화상 데이터는 대략 일정한 사이즈를 가지는 블록 단위로 한다. 그 때문에 하드디스크 드라이브(50)가 보유하는 계층 데이터는 소정의 규칙으로 블록으로 분할해 둔다. 이렇게 함으로써 메인 메모리(60)에 있어서의 데이터 관리를 효율적으로 행할 수 있다. 즉, 압축화상 데이터가 가변길이 압축된 것이어도, 블록(이후 '화상블록'이라고 부름) 단위이면 로딩하는 데이터 사이즈가 거의 동일하기 때문에, 기본적으로 메인 메모리(60)에 그때까지 저장되어 있던 블록 중 어느 것을 겹쳐쓰기(overwriting)함으로써 새로운 로딩이 완료된다. 그 때문에 단편화(fragmentation)가 발생하기 어려워 메모리를 효율적으로 사용할 수 있는 데다가, 어드레스 관리도 용이해진다.
다음으로 메인 메모리(60)에 저장되어 있는 압축화상 데이터 중, 표시에 필요한 영역의 화상, 또는 필요할 것으로 예측되는 영역의 화상 데이터를 디코딩하고 버퍼 메모리(70)에 저장한다(S12). 버퍼 메모리(70)는 적어도 2개의 버퍼영역(72, 74)을 포함한다. 각 버퍼영역(72, 74)의 사이즈는 프레임 메모리(90)의 사이즈보다도 크게 설정되고, 입력장치(20)로부터 화상변경 요구신호가 입력되었을 경우에, 어느 정도의 양의 변경 요구에 대해서는, 버퍼영역(72, 74)에 전개한 화상 데이터로 표시화상을 생성할 수 있도록 한다.
버퍼영역(72, 74) 중 한쪽은 표시화상의 생성에 이용하는 화상을 보유하기 위해 이용되고, 다른쪽은 이후 필요할 것으로 예측되는 화상을 준비하기 위해 이용된다. 이후, 전자를 '표시용 버퍼', 후자를 '디코딩용 버퍼'라고 부른다. 도 5의 예에서는 버퍼영역(72)이 표시용 버퍼, 버퍼영역(74)이 디코딩용 버퍼이고, 표시영역(68)이 표시되어 있는 것으로 한다. 미리읽기 처리에 의해 디코딩용 버퍼에 저장하는 화상은 표시용 버퍼에 저장되어 있는 화상과 동일 계층의 화상이어도 되고, 축척이 다른 별도 계층의 화상이어도 된다.
다음으로 표시용 버퍼인 버퍼영역(72)에 저장된 화상 중 표시영역(68)의 화상을 프레임 메모리(90)에 묘화한다(S14). 이 사이에, 새로운 영역의 화상이 필요에 따라 디코딩되어 버퍼영역(74)에 저장된다. 저장이 완료된 타이밍이나 표시영역(68)의 변경량 등에 따라 표시용 버퍼와 디코딩용 버퍼를 전환한다(S16). 이로 인해, 표시영역의 이동이나 축척률의 변경 등에 대하여 표시화상을 원활하게 전환할 수 있다.
본 실시형태에서는 또한, 디코딩용 버퍼에 새로운 영역의 화상을 저장해야 할 때에, 그때까지 저장되어 있던 디코딩 완료된 화상과 중복되는 영역이 존재할 때에는 당해 영역을 이용함으로써 새로 디코딩하는 영역을 최소화한다. 구체적인 수법에 대해서는 나중에 상세하게 기술한다.
도 6은 제어부(100)의 구성을 상세하게 나타내고 있다. 제어부(100)는 입력장치(20)로부터 사용자가 입력한 정보를 취득하는 입력정보 취득부(102), 계층 데이터를 화상블록으로 분할하는 압축데이터 분할부(104), 새로 로딩해야 할 화상블록을 결정하는 로딩블록 결정부(106), 필요한 화상블록을 하드디스크 드라이브(50)로부터 로딩하는 로딩부(108)를 포함한다. 제어부(100)는 또한 표시화상을 묘화하는 표시화상 처리부(114), 미리읽기 처리를 행하는 미리읽기 처리부(110), 및 압축화상 데이터를 디코딩하는 디코딩부(112)를 포함한다.
도 6에 있어서, 다양한 처리를 실행하는 기능 블록으로서 기재되는 각 요소는 하드웨어적으로는 CPU(Central Processing Unit), 메모리, 그 밖의 LSI로 구성할 수 있고, 소프트웨어적으로는 메모리에 로딩된 프로그램 등에 의해 실현된다. 이미 기술한 바와 같이, 제어부(100)는 1개의 PPU와 복수의 SPU를 가지며, PPU 및 SPU가 각각 단독 또는 협동하여 각 기능 블록을 구성할 수 있다. 따라서 이 기능 블록들이 하드웨어만, 소프트웨어만, 또는 그들의 조합에 의해 다양한 형태로 실현할 수 있다는 것은 당업자에게는 이해되는 바이며, 어느 것에 한정되는 것은 아니다.
입력정보 취득부(102)는 사용자가 입력장치(20)에 대하여 입력한, 화상표시의 개시/종료, 표시영역의 이동, 표시화상의 확대, 축소 등의 지시 내용을 취득한다.
압축데이터 분할부(104)는 하드디스크 드라이브(50) 등으로부터 계층 데이터를 읽어내, 후술하는 소정의 규칙에 따라 분할하여 화상블록을 생성하여 하드디스크 드라이브(50)에 저장한다. 예를 들면 사용자가 입력장치(20)에 대하여, 하드디스크 드라이브(50)에 저장되어 있는 계층 데이터 중 어느 것을 선택하면, 입력정보 취득부(102)로부터 당해 정보를 취득하여 분할 처리를 개시한다.
한편, 압축데이터 분할부(104)는 제어부(100)의 다른 기능과 동일한 장치 내에 없어도 되고, 계층 데이터를 생성하는 단계에서 분할하도록 해도 된다. 구체적인 분할 수법은 나중에 상세하게 기술하겠지만, 하드디스크 드라이브(50)의 속도나 메인 메모리(60)의 용량 등 하드웨어의 성능에 따라, 압축데이터 분할부(104)가 실행하는 블록 분할 방법은 달라도 된다. 그 때문에, 압축데이터 분할부(104)에는 미리 화상처리장치(10)가 가지는 하드웨어 성능에 따른 최적의 블록 분할을 실행하도록 설정해 둔다.
로딩블록 결정부(106)는 하드디스크 드라이브(50)로부터 메인 메모리(60)에 새로 로딩해야 할 화상블록의 유무의 확인, 및 다음에 로딩할 화상블록을 결정하여 로딩부(108)에 로딩 요구를 발행한다. 로딩블록 결정부(106)는 로딩부(108)가 로딩 처리 중이 아닌 상태에 있어서, 예를 들면 소정의 시간간격, 혹은 사용자가 화상의 변경 요구를 했을 때 등, 소정의 타이밍에 상기 확인, 결정을 처리한다. 로딩부(108)는 로딩블록 결정부(106)로부터의 요구에 따라 실제 로딩 처리를 행한다.
사용자가 표시화상의 변경 요구를 했을 때, 만약 변경처의 화상영역을 포함하는 화상블록이 메인 메모리(60)에 저장되어 있지 않으면, 하드디스크 드라이브(50)로부터의 화상블록의 로딩, 필요영역의 디코딩, 표시화상의 묘화와 같은 처리를 한번에 행할 필요가 있다. 이 경우, 로딩 처리에 병목 현상이 일어나, 사용자의 요구에 대한 응답성이 손상되는 경우가 생각된다. 본 실시형태에서는 (1)앞으로 표시될 가능성이 높은 영역을 망라하도록 화상블록을 로딩해 두는 방침, (2)로딩 처리가 한 시기에 집중되지 않도록 수시로 로딩해 가는 것과 같은 방침에 따라 로딩을 실시한다. 이로 인해 로딩 처리가 표시화상의 변경 처리의 방해가 되는 일이 적어진다. 로딩할 화상블록의 결정 순서에 대해서는 나중에 상세하게 기술한다.
미리읽기 처리부(110)는 현재의 표시화상의 프레임 좌표와 사용자가 입력한 표시화상 변경요구의 정보에 따라, 장래 표시화상의 묘화에 필요하게 될 화상영역을 예측하여 그 정보를 디코딩부(112)에 공급한다. 단 화상표시개시 직후나, 버퍼 메모리(70)에 저장 완료된 화상에서는 변경처의 화상이 묘화 불가능한 경우 등에는 예측을 하지 않고, 그 시작점의 표시화상의 묘화에 필요한 화상을 포함하는 소정영역의 정보를 디코딩부(112)에 공급한다. 디코딩부(112)는 미리읽기 처리부(110)로부터 취득한 화상영역의 정보에 기초하여, 메인 메모리(60)로부터 압축화상 데이터의 일부를 읽어내 디코딩하고, 디코딩용 버퍼 또는 표시용 버퍼에 디코딩 후의 데이터를 저장한다.
표시화상 처리부(114)는 사용자가 입력한 표시화상 변경요구에 따라 새로운 표시화상의 프레임 좌표를 결정하고, 버퍼 메모리(70)의 표시용 버퍼로부터 대응하는 화상 데이터를 읽어내, 표시 처리부(44)의 프레임 메모리(90)에 묘화한다.
다음으로 계층 데이터를 화상블록으로 분할하는 수법에 대하여 설명한다. 도 7은 압축데이터 분할부(104)의 구성을 상세하게 나타내고 있다. 압축데이터 분할부(104)는 식별번호 부여부(120), 화상블록 생성부(122)를 포함한다. 식별번호 부여부(120)는 계층 데이터를 구성하는 각 계층의 타일화상에 소정의 순서로 0에서부터 순서대로 식별번호를 부여해 간다. 화상블록 생성부(122)는 데이터 사이즈의 합계가 소정의 사이즈를 넘기 직전까지 식별번호순으로 타일화상을 정리해 가면서, 화상블록을 생성한다.
도 8은 계층 데이터에 있어서의 각 계층의 화상을 모식적으로 나타내고 있다. 계층 데이터는 도 3과 마찬가지로 제0계층(30a), 제1계층(32a), 제2계층(34a), 및 제3계층(36a)의 화상으로 이루어지는 것으로 한다. 그리고 각 계층의 화상 중 실선으로 구분된 구획 하나하나가 타일화상이다. 식별번호 부여부(120)는 동 도면에 나타내는 바와 같이 각 타일화상에 식별번호를 부여한다. 예를 들면 제0계층(30a)의 화상은 1개의 타일화상으로 구성되며, 식별번호를 '0'으로 한다. 제1계층(32a), 제2계층(34a), 제3계층(36a)은 각각 '1'과 '2', '3'에서 '8', '9'에서 '44'의 식별번호를 각 타일화상에 부여한다. 도 8의 예에서는 식별번호를 부여하는 순서를 래스터순으로 나타냈지만, 후술하는 바와 같이 그 이외의 순서여도 된다.
도 9는 화상블록 생성부(122)가, 도 8의 계층 데이터를 화상블록에 정리하는 모습을 모식적으로 나타내고 있다. 상술한 바와 같이 화상블록 생성부(122)는 소정의 데이터 사이즈를 넘지 않는 최대수의 타일화상으로 화상블록이 구성되도록, 식별번호가 작은 쪽에서부터 타일화상을 구분지어 간다. 동 도면에서는 이때의 '소정의 데이터 사이즈'를 '기본 블록 사이즈'로 하고 화살표 범위로 나타내고 있다.
동 도면의 예에서는 식별번호 '0'에서 '5'의 타일화상이 화상블록 2 , '6'에서 '8'의 타일화상이 화상블록 4, 이러한 방식으로 각각 화상블록에 정리되어 가고, '41'에서 '44'의 타일화상이 최종 화상블록 6이 되어 있다. 각 화상블록은 선두 타일화상의 식별번호와 포함되는 타일화상의 수로 식별된다. 따라서 화상블록 2는 '(0, 6)', 화상블록 4는 '(6, 3)', 화상블록 6은 '(41, 4)'의 식별정보를 가진다. 이와 같이 식별정보를 정의하면, 어느 타일화상이 어느 화상블록에 포함되는지 아닌지를 용이하게 판정할 수 있다. 즉, 블록 분할방법에 관계없이, 식별번호의 범위를 확인하는 것만으로 화상블록에 포함되는 타일화상을 특정할 수 있다.
화상블록의 식별정보는 대응하는 압축화상 데이터의 하드디스크 드라이브(50)에 있어서의 저장영역의 정보와 대응시켜 하드디스크 드라이브(50)에 저장해 둔다. 이와 같이, 압축화상 데이터를 대략 같은 사이즈의 화상블록으로 분할해 두면, 상술한 대로, 로딩한 화상블록을 메인 메모리(60) 내의 연속된 영역에 저장해도 하나의 화상블록을 그 후에 로딩된 화상블록으로 겹쳐쓰기해 감으로써 저장이 가능하고, 단편화의 발생을 억제할 수 있는 동시에 메인 메모리(60)를 효율적으로 사용할 수 있다.
상기와 같이 식별번호순으로 화상블록의 구분을 설정해 갈 경우, 식별번호의 타일화상에의 부여순서에 따라, 원화상이 어떻게 분할되는지가 크게 다르다. 이하, 몇 가지 예를 설명한다. 도 10은 본 실시형태에 있어서의 블록 분할 수법을 설명하기 위한 원화상의 예이다. 한편 도 10~14는 그레이 스케일을 나타내고 있지만, 실제로는 풀 컬러여도 된다. 원화상(200)은 예를 들면 92323×34630 화소를 가지며 그것을 361×136개의 타일화상으로 분할한다.
도 11~14는 기초 블록 사이즈를 1M 바이트로서 다양한 식별번호의 부여순으로 도 10의 원화상(200)을 분할한 모습을 나타내고 있다. 각 화상은 화상블록의 경계를 알기 쉽도록, 화상블록마다 그레이 스케일의 농담을 다르게 하였다. 도 11은 도 8과 같이 타일화상에 대하여 래스터순으로 식별번호를 부여했을 경우의 분할 모습을 나타내고 있다. 래스터순 분할화상(202)은 타일화상을 가로방향으로 정리한 형태의 화상블록으로 분할되어 있다. 확대화상(204)에 있어서 나타낸 폭(206)이 화상블록의 세로방향의 길이가 된다. 가로방향의 길이는 화상블록에 포함되는 타일화상의 압축 후의 데이터 사이즈에 따라 변화되고, 하나의 화상블록이 복수행의 타일화상에 걸쳐지는 경우도 있다.
도 11과 같은 식별번호의 부여순이면 부여 자체의 처리가 용이하다. 또한 이와 같이 블록 분할하면 하나의 화상블록이 보유하는 정보는 가로방향에 대하여 많아진다. 그 때문에 화상의 내용상, 가로방향으로 표시영역을 이동시키는 일이 많은 경우에는 적은 횟수의 로딩으로, 이동 후의 표시영역을 망라할 수 있는 화상블록을 메인 메모리(60)에 저장할 수 있다. 한편 표시영역의 이동에 그러한 특성이 없을 경우에는 하나의 표시화상을 생성하기 위해 다수의 화상블록을 로딩할 필요가 있는 데다가, 표시화상에서 먼 부분의 불필요한 정보를 많이 도입하게 되어 효율이 나쁘다.
도 12는 'Z형상'순으로 타일화상에 식별번호를 부여했을 경우의 분할 모습을 나타내고 있다. 여기서 'Z형상'순이란, 동 도면의 식별번호 부여예(212)의 스캔순(214)에 나타내는 바와 같이, 화상의 가로방향(X방향)과 세로방향(Y방향)으로 번갈아 인크리먼트(increment)해 나가는 순서이다. 그러면 동 도면에 기재된 숫자와 같이 식별번호가 부여된다. 이러한 순서로 화상블록에 정리해 가면, Z형상순 분할화상(208)과 같은 화상블록으로 분할된다. 확대화상(210)에 있어서 하나의 화상블록은 화상블록(216)과 같은 형상을 가진다.
즉 이러한 수법에서는 어느 타일화상을 시작점에 가로방향, 세로방향으로 동량(同量)씩 확대해 가도록 식별번호를 부여하고 있기 때문에, 이 경우의 화상블록(216)은 정방형에 가까운 형태가 된다. 상세한 형상 및 크기는 각 화상블록에 포함되는 타일화상의 압축 후의 데이터 사이즈에 의존한다. 도 12와 같이 블록 분할하면, 1개의 화상블록이 가지는 정보는 공간 국소성이 좋아져, 표시화상이나 그 근방의 영역의 화상을 생성하는데 필요한 화상블록이 도 11의 경우와 비교해서 적어진다. 또한 불필요한 영역의 정보가 로딩되기 어려워, 메인 메모리(60)의 사용 효율이 좋아진다.
도 13은 정방형의 매크로타일순으로 타일화상에 식별번호를 부여했을 경우의 분할 모습을 나타내고 있다. 여기서 '매크로타일'이란 복수의 타일화상으로 구성되는 직사각형을 말하며, 세로, 가로에 포함되는 타일화상의 수는 미리 설정해 둔다. 또한 도 12의 예는 2×2개의 타일화상으로 구성되는 매크로타일을 재귀적으로 형성하고 있다고 생각할 수도 있다. 도 13의 경우에는 매크로타일(222)에 나타내는 바와 같이, 8×8개의 타일화상으로 구성되는 정방형을 1개의 매크로타일로 하고 있다. 그리고 매크로타일(222) 내에서 화살표의 방향, 즉 래스터순으로 식별번호를 부여한다. 이로 인해, 동 도면에 기재된 숫자와 같이, 각 타일화상에 식별번호가 부여된다. 1개의 매크로타일에 대하여 식별번호 부여가 완료되면, 동일한 부여를 전체 매크로타일에 대하여 래스터순으로 실시해 간다.
이러한 순서로 화상블록에 정리해 가면, 정방형 매크로타일순 분할화상(218)과 같은 화상블록으로 분할된다. 즉 이 경우의 화상블록은 매크로블록을 가로방향으로 정리한 형상을 가진다. 확대화상(220)에 있어서 매크로타일(222)의 한 변의 길이, 혹은 그 정수배가 화상블록의 세로방향의 길이가 된다. 가로방향의 길이는 각 화상블록에 포함되는 타일화상의 압축 후의 데이터 사이즈에 따라 변화된다. 도 13과 같이 블록 분할한 경우에도 도 12의 경우와 마찬가지로, 표시화상이나 그 근방의 영역의 화상을 생성하는데 필요한 화상블록수가 억제되어 로딩의 효율이 좋아진다.
도 14는 스트립형상 매크로타일순으로 타일화상에 식별번호를 부여했을 경우의 분할 모습을 나타내고 있다. 스트립형상 매크로타일은 가로방향에 포함되는 타일화상의 수만 설정하고, 세로방향은 무제한으로 하는 매크로타일이다. 도 14의 경우는 매크로타일(230)에 나타내는 바와 같이, 가로방향이 16개의 타일화상으로 구성되어 있다. 그리고 매크로타일(230) 내에서 화살표의 방향, 즉 래스터순으로 식별번호를 부여한다. 이로 인해, 동 도면에 기재된 숫자와 같이 각 타일화상에 식별번호가 부여된다. 식별번호의 부여가 원화상의 하단까지 이루어지면 그 우측에 위치하는 매크로타일, 이러한 방식으로 동일한 부여를 전체 매크로타일에 대하여 래스터순으로 실시해 간다.
이러한 순서로 화상블록에 정리해 가면, 스트립형상 매크로타일순 분할화상(224)과 같은 화상블록으로 분할된다. 즉 이 경우의 화상블록은 세로 일렬의 매크로타일을, 타일화상의 압축 후의 데이터 사이즈에 따라 도중에 구분지은 형상을 가진다. 경우에 따라서는 복수열의 매크로타일에 걸쳐지는 경우도 있다. 확대화상(226)에 있어서 매크로타일의 폭(228), 혹은 그 정수배가 화상블록의 가로방향의 폭이 된다. 화상블록의 구분 부분에 있어서의 경계선의 상세한 형상도 타일화상의 압축 후의 데이터 사이즈에 따라 변화된다. 도 14와 같이 블록 분할한 경우에도 도 12, 13의 경우와 마찬가지로, 표시화상이나 그 근방의 영역의 화상을 생성하기 위해 필요한 화상블록수가 억제되어 로딩의 효율이 좋아진다.
상술한 바와 같이 식별번호를 부여하는 순서나 기본 블록 사이즈에 따라 화상블록의 형상, 크기, 포함되는 정보가 크게 다르다. 따라서 화상의 내용이나 장르, 예를 들면 풍경 사진인지 신문 등의 문자 화상인지 등에 따라 가장 효율적으로 데이터의 도입이 가능한 조건을 구해 두고, 실제 화상에 따라 선택하도록 해도 된다. 또한 전술한 바와 같이 하드웨어의 구성에 따라 최적의 수법을 선택하도록 해도 된다.
이상과 같이 화상을 분할한 결과 얻어지는 화상블록은 거의 균일한 데이터 사이즈로 타일화상을 정리한 것이기 때문에, 그 면적은 상술한 바와 같이 구성하는 타일화상의 압축 후의 데이터 사이즈에 의존한다. 도 10의 원화상(200)에 있어서, 화상의 윗절반 부분은 빈 영역이며 색이 비교적 균일하기 때문에 고주파 성분이 적어 압축률이 높다. 한편 원화상(200)의 중앙 부근은 건축물 등이 있기 때문에 색의 변화가 크고, 고주파 성분이 많기 때문에 압축률이 낮다. 따라서 원화상(200) 중 윗절반 부분의 타일화상의 압축 후의 데이터 사이즈는 중앙 부근의 데이터 사이즈보다 작은 경향을 가진다.
이에 근거하여 예를 들어 도 14의 스트립형상 매크로타일순 분할화상(124)을 보면, 윗절반 부분의 화상블록의 면적은 중앙 부근의 화상블록보다 큰 경향이 있다. 그 밖의 분할화상에서도 마찬가지이다. 즉 본 실시형태에서는 화상의 면적을 단순히 균등하게 분할하는 것이 아니라, 데이터 사이즈에 따라 분할하고 있다. 이렇게 함으로써, 단위면적당 데이터 사이즈가 작은 영역은 한 번의 로딩으로 넓은 면적의 압축데이터를 메인 메모리(60)에 저장할 수 있으며, 메모리 내에서 관리해야 할 블록수가 적어지기 때문에 관리가 용이해지는 데다가 로딩의 효율이 좋아진다.
도 12에 나타낸 Z형상순 분할화상(208)의 예에서는 Z형상으로 식별번호를 부여함으로써 화상블록을 정방형에 가깝게 하여 공간 국소성을 향상시켰다. 동 도면의 예에서는 식별번호 부여가 끝난 타일화상이 소정 크기의 정방형까지 도달하면, 새로운 시작점에서 식별번호를 부여해 가도록 하고 있으며, 이때의 시작점을 원화상(200) 내에서 매트릭스형상으로 배치하였다. 그 때문에 화상블록의 경계선은 대략 서로 직교하는 격자형상으로 되어 있다. 한편 화상블록의 경계선이 격자형상이 되지 않도록 궁리해도 된다.
도 15는 화상블록의 경계선이 격자형상으로 구성되어 있을 때의, 화상블록과 표시화상의 묘화영역의 관계를 모식적으로 나타내고 있다. 원화상의 한 영역(132)에 있어서, 화상블록(134a)은 가로 3개, 세로 2개의 매트릭스형상으로 되어 있고, 그 경계선은 격자형상으로 되어 있다. 이와 같이 블록 분할을 실시하면, 동 도면과 같이 묘화영역(136a)이 격자의 교점을 포함하는 위치가 되면, 묘화에 필요한 화상블록이 4개가 된다.
도 16은 화상블록의 경계선을 T자로형상으로 했을 때의, 화상블록과 표시화상의 묘화영역의 관계를 모식적으로 나타내고 있다. 원화상의 한 영역(238)에 있어서, 화상블록(134b)은 세로방향의 경계선이 행에 의해 어긋나게 배치되어, 결과적으로 경계선이 T자로형상으로 되어 있다. 이와 같이 블록 분할을 행하면, 동 도면과 같이 묘화영역(136b)이 경계선을 넘어도 묘화에 필요한 화상블록은 최대 3개가 되어, 도 15의 경우와 비교해서 로딩의 효율이 좋아진다. 이와 같이 화상블록이 배치되도록 하기 위해서는 예를 들면 상술한 식별번호 부여의 시작점을 매트릭스형상으로 배치하는 것이 아니라, 행에 의해 어긋나게 하면 된다.
지금까지 기술한 블록 분할 수법은 모두, 동일한 계층에 있는 화상에 대한 것이었다. 한편 복수의 계층에 걸치도록 식별번호를 부여해 감으로써, 하나의 화상블록에 복수의 계층의 타일화상의 정보가 포함되도록 해도 된다. 이렇게 하면, 동일 계층의 화상상에서의 표시영역의 이동뿐만 아니라, 표시화상의 확대, 축소에 대해서도 로딩 횟수를 경감시킬 수 있다.
이때, 복수의 계층의 타일화상을 단순히 같게 압축하고 나서 화상블록으로서 정리해도 되고, 해상도가 다른 같은 화상끼리의 용장성(redundancy)을 이용해서, 한쪽의 화상을 다른쪽의 화상을 이용해서 복원하도록 해서 압축률을 올려도 된다. 본 실시형태에서는 하나의 화상블록에 포함되는 정보가 항상 세트로 로딩되기 때문에 이러한 수법이 가능하게 된다. 예를 들면 저해상도 화상을 고해상도 화상의 배율까지 확대한 화상과, 실제의 고해상도 화상과의 차분화상을 압축하여, 저해상도 화상의 압축데이터와 함께 화상블록에 포함시킨다. 이 경우, 저해상도 화상, 차분화상의 순으로 화상블록에 정리해 가면서, 기초 블록 사이즈를 넘지 않는 최대의 데이터 사이즈가 되었을 때에 다음 화상블록을 형성해 가도록 한다.
도 17은 고해상도 화상을, 저해상도 화상의 확대화상과의 차분화상으로서 압축하는 수법을 설명하기 위한 도면이다. 본 처리는 압축데이터 분할부(104)가 실행하는데, 계층 데이터를 생성하는 단계에서, 화상표시에 관련된 그 밖의 처리와는 별도로 실행해도 된다. 먼저 계층 데이터(139)에 있어서의 제2계층(34) 및 제3계층(36)의 원화상을 각각 읽어낸다(S20, S22). 이 예에서는 동 도면에 나타내는 바와 같이, 제3계층화상(36b)은 제2계층화상(34b)을 세로 및 가로로 2배한 화상으로 되어 있다. 이 화상들 중, 제2계층화상(34b)의 타일화상 중 몇 개를 통상대로 압축한다(S24). 다음으로 제3계층화상(36b)의 대응하는 타일화상을 압축하는 대신에, 당해 타일화상과, 제2계층화상(34b)의 타일화상을 2×2배로 확대한 화상과의 차분화상을 압축한다(S26).
이때, 제2계층화상(34b)에 있어서의 압축 대상의 타일화상은 도 11∼14에서 예시한 것과 마찬가지로, 대략 같은 데이터 사이즈가 되도록 원화상을 분할하여 이루어지는 영역의 타일화상 등으로 한다. 혹은 미리 정한 수의 타일화상으로 하여 상술한 것과 같이 화상블록을 형성하는 단계에서 데이터 사이즈가 균일해지도록 조정해도 된다.
그 결과, 제2계층화상(34b)의 압축데이터(140)와 차분화상의 압축데이터(142)가 생성된다. 동 도면에서는 이해를 쉽게 하기 위해 압축데이터도 화상으로 표현하고, 차분화상의 압축데이터(142)는 차분인 것을 나타내기 위해 쉐이드(shade) 화상으로 하였다. 이 압축데이터들을 하나의 화상블록(144)에 포함시킨다. 또한 이 예에서는 제2계층화상(34b)과 제3계층화상(36b)의 하나의 조합만 화상블록(144)에 들어가도록 도시되어 있지만, 3개 이상의 계층의 화상을 마찬가지로 포함시켜도 된다. 즉, 가장 저해상도의 화상은 그대로 압축하고, 고해상도 화상은 바로 위 계층의 화상과의 차분화상에 의해 표현한다. 또한 그러한 의존 관계를 가지는 압축데이터의 조를 복수개, 화상블록(144)에 포함시키도록 해도 된다.
이와 같이 해서 생성된 화상블록(144)은 하드디스크 드라이브(50)에 저장해 둔다. 그리고 로딩부(108)가 필요에 따라 메인 메모리(60)에 로딩한다. 그 후, 미리읽기 처리부(110) 등의 판단에 의해 디코딩부(112)에 의해 디코딩된다. 이때, 제2계층화상(34b)의 압축데이터(140)는 통상적인 처리로 디코딩되어 제2계층화상(34b)이 된다(S28). 한편 차분화상의 압축데이터(142)는 우선 통상적으로 디코딩한 뒤(S30), 디코딩한 제2계층화상(34b)을 2×2배로 확대한 화상과 더함으로써(S32, S34), 제3계층화상(36b)이 된다.
상기의 예에서는 저해상도 화상의 확대화상과의 차분화상을 고해상도 화상의 데이터로서 압축했지만, 반대로 고해상도 화상을 이용해서 저해상도 화상을 작성하도록 해도 된다. 예를 들면 고해상도 화상을 웨이브릿(wavelet) 압축하여 하드디스크 드라이브(50)에 저장해 두고, 필요에 따라 메인 메모리(60)에 로딩한 후, 디코딩부(112)는 당해 고해상도 화상의 압축화상의 로우패스 화상을 생성함으로써 저해상도 화상으로 해도 된다. 마찬가지로, 고해상도 화상을 JPEG압축하고, 그 고주파 성분을 컷트해서 저해상도 화상으로 해도 된다. 혹은 그렇게 해서 생성한 저해상도 화상과 원래의 저해상도 화상과의 차분화상을 압축하여 동일한 화상블록에 포함시켜 두고, 상술한 것과 마찬가지로 차분화상을 가산함으로써 저해상도 화상을 복원해도 된다. 또는 피라미드 필터에 의해 2×2의 픽셀군에서 1픽셀을 구해도 된다. 이 수법들에 의해, 메인 메모리(60)에의 로딩 시간의 단축, 메인 메모리(60)의 영역의 유효 이용을 실현할 수 있다.
다음으로 하드디스크 드라이브(50)에 저장된 화상블록으로부터 메인 메모리(60)에 로딩해야 할 화상블록을 결정하여 로딩하는 수법에 대하여 설명한다. 도 18은 로딩해야 할 화상블록을 결정하여 로딩을 실시하는 처리순서를 나타내는 플로우 차트이다. 이 처리는 예를 들면 소정의 시간간격으로 수시로 실시한다. 먼저 로딩블록 결정부(106)는 로딩부(108)가 현재 로딩 중인지 아닌지를 확인한다(S40). 로딩 중이면 처리를 종료한다(S40의 Y).
로딩 중이 아니면(S40의 N), 후술하는 화상상의 영역에 대하여 메인 메모리(60)에 해당하는 데이터가 있는지 없는지를 판정한다(S42). 이를 위해서는 예를 들면, 메인 메모리(60)에 저장되어 있는 화상블록의 식별정보, 즉 선두 타일화상의 식별번호와 타일화상의 수로 이루어지는 정보와, 그 선두 어드레스를 대응시킨 테이블을 메인 메모리(60)에 저장해 둔다. 그리고 필요한 타일화상의 식별번호에 기초하여 당해 테이블을 검색함으로써 데이터의 유무를 판정할 수 있다. 여기서 판정 대상의 영역은 1개의 타일화상이어도 되고, 복수의 타일화상을 포함해도 된다. 이러한 영역을 '필요영역'이라고 부른다.
만일 필요영역 중 메인 메모리(60)에 로딩되지 않은 영역이 존재한다면(S44의 Y), 당해 영역을 포함하는 화상블록을, 당해 영역에 포함되는 타일화상의 식별번호와 화상블록의 식별정보로부터 특정하고 그것을 로딩 대상으로 결정한다(S46). 이때 복수의 화상블록을 로딩할 필요가 생겼을 경우에는 미리 정한 규칙에 따라 우선도가 높은 화상블록을 로딩 대상으로서 결정한다. 즉 1회의 로딩 처리에 있어서, 많은 화상블록을 한번에 로딩하지 않도록 한다.
한번에 로딩하는 화상블록이 많아질수록, 로딩에 요하는 시간이 증가되는데, 그 동안에 표시화상의 변경 요구가 사용자로부터 이루어지면, 필요영역이 변화되어버려 그때의 로딩 처리가 불필요하게 될 가능성이 있다. 이러한 사태를 회피하기 위해, 로딩블록 결정부(106)는 수시로, 로딩해야 할 화상블록을 결정해 가고, 한번에 로딩하는 화상블록을 1개, 혹은 소정의 수 이내로 제한한다.
로딩블록 결정부(106)가 로딩 대상을 결정하면, 로딩부(108)가 화상블록의 식별정보와 저장영역을 대응시킨 테이블에 기초하여, 로딩 대상인 화상블록을 하드디스크 드라이브(50)로부터 읽어내 메인 메모리(60)에 저장한다(S48). S44에 있어서 필요영역 모두가 메인 메모리(60)에 저장되어 있으면 처리를 종료한다(S44의 N).
도 19는 S42에 있어서 메인 메모리(60)에 필요영역의 데이터가 저장되어 있는지 아닌지를 판정하는 대상인 필요영역을 결정할 때의 개념도이다. 메인 메모리(60)에는 기본적으로는 현재 표시되어 있는 영역의 주변의 화상의 압축데이터가 로딩되어 있는 것이 바람직하다. 여기서 '주변'이란, 동일 계층의 화상에 있어서의 상하좌우(X축, Y축)방향과, 계층 구조의 깊이(Z축)방향의 주변을 포함해도 된다. Z축방향의 주변이란, 표시화상 및 그 근방을 포함하는 확대화상 및 축소화상을 의미한다.
도 19는 위에서부터 제n-1계층, 제n계층, 제n+1계층의 화상의 일부를 나타내고 있으며, 각 화상 내에 타일화상이 나타나 있다. 각 계층에서 나타내고 있는 화상은 중심선(154)에 있어서 동일 개소를 표시한다. 그리고 제n계층의 화상의 중앙 부근의 영역(150)이 현재 표시되고 있는 영역이라고 하면, 필요영역은 예를 들면 검은색 동그라미 152a, 152b, 152c 등을 포함하는 영역으로 한다. 즉 표시화상의 계층인 제n계층의 화상에 있어서는, 표시화상의 영역(150) 내의 중심(중심선(154)의 지점) 및 네 모퉁이의 지점과, 영역(150)을 상하좌우로 신장한 직사각형의 각 변의 중점과 네 모퉁이의 지점을 포함하는 타일화상을 필요영역으로 한다.
한편, 표시화상과 인접하는 계층인 제n-1계층과 제n+1계층의 화상에 있어서는 중심선(154)의 지점과, 그것을 중심(重心)으로 하는 소정 사이즈의 직사각형의 네 모퉁이의 지점을 포함하는 타일화상을 필요영역으로 한다. 이 경우의 직사각형은 표시화상의 직사각형의 크기에 상당하는 크기여도 된다. 표시영역이 이동하더라도 항상 이러한 지점을 포함하는 화상블록이 메인 메모리(60)에 로딩되어 있다면 원활하게 디코딩 및 묘화를 실시할 수 있어, 사용자에 의한 화상변경 요구에 대한 응답성이 좋아진다.
한편 도 19에 나타낸 지점은 어디까지나 예시이며, 화상의 내용이나 화상처리장치(10)의 처리성능, 메인 메모리(60)의 용량 등에 따라 수를 증감시키거나 배치 형상을 변화시키거나 해도 된다. 또한 화상의 내용상 중요한 영역이나, 동일 사용자에 의한 표시이력으로부터, 과거에 높은 빈도로 표시된 영역이나 사용자의 기호에 합치된다고 생각되는 영역은 표시화상의 변화에 관계없이 우선적으로 로딩하도록 해도 된다. 여기서 '중요한 영역'이란 예를 들면 인물 화상이라면 생김새, 전자 광고지라면 주력상품 등의 표시영역이다. 또한 사용자의 기호란, 신문지면의 화상이라면 사용자가 자주 열람하는 란 등이다. 이러한 영역은 도 18의 S46에 있어서 복수의 화상블록을 로딩할 필요가 생긴 경우라도, 높은 우선도를 부여하여 로딩되도록 한다. 혹은 화상표시를 개시한 단계에서 로딩해 두도록 해도 된다.
도 18의 S46에 있어서의 우선도에 대해서는 그 밖에 예를 들면 다음과 같은 규칙을 준비해도 된다. 먼저, 표시화상과 동일 계층 내의 화상블록보다, 별도의 계층, 즉 확대화상 및 축소화상의 화상블록을 우선시킨다. 이것은 동일 계층 내에서의 표시영역의 이동의 경우, 버퍼 메모리(70)에 있어서의 2개의 버퍼영역(72 및 74)에 저장한 디코딩화상으로 커버할 수 있을 가능성이 높은 데 반해, 계층간의 이동에서는 버퍼 메모리(70)의 디코딩화상을 모두 갱신해야만 할 가능성이 높기 때문이다. 단 2개의 계층간을 왕복하는 경우에는 버퍼 메모리(70)로 충족되는 경우도 있다.
또한 계층이 깊은, 즉 확대화상의 화상블록보다 계층이 얕은, 즉 축소화상의 화상블록을 우선시킨다. 확대화상은 로딩, 디코딩이 늦었다고 해도, 축소화상을 확대함으로써 잠정적인 대응이 용이하지만, 그 반대는 곤란하기 때문이다.
도 20은 미리읽기 처리부(110)가 실시하는 미리읽기 처리를 설명하기 위한 도면이다. 도 20은 계층 데이터의 구조를 나타내고 있으며, 각 계층은 L0(제0계층), L1(제1계층), L2(제2계층), L3(제3계층)으로 표현되어 있다. 화살표 80은 사용자로부터의 화상변경 요구가 표시화상의 축소를 요구하고 있으며, L2를 넘어선 모습을 나타내고 있다. 본 실시형태의 화상처리장치(10)에서는 원래의 화상 데이터가 존재하는 L1, L2의 깊이방향의 위치를, 깊이방향의 미리읽기 경계로서 설정하고, 입력장치(20)로부터의 화상변경 요구가 미리읽기 경계를 넘어선 타이밍에 미리읽기 처리를 개시한다.
표시화상의 축척률이 L2의 근방에 있을 경우, L2(제2계층)의 화상을 이용해서 표시화상을 작성한다. 구체적으로는, 표시할 화상의 축척률이, L1 화상과 L2 화상의 전환경계(82)와, L2 화상과 L3 화상의 전환경계(84) 사이에 있을 경우에, L2 화상을 축소, 확대하여 표시화상을 생성한다. 따라서 화살표 80으로 나타내는 바와 같이 화상의 축소 처리가 요구되면, L2의 확대화상으로부터 축소화상으로 변환되어 표시된다. 본 실시형태의 화상처리장치(10)는 화상변경 요구로부터 예측되는 장래 필요한 화상을 특정하여, 메인 메모리(60)로부터 읽어내 디코딩해 둔다. 도 20의 예에서는 화상변경 요구에 의한 요구 축척률이 L2를 넘어섰을 때에, 축소방향에 있는 L1 화상을 메인 메모리(60)로부터 미리읽기해서 디코딩하여 버퍼 메모리(70)에 써넣는다.
동일 계층에 있어서의 상하좌우방향의 미리읽기 처리에 대해서도 마찬가지로 처리된다. 구체적으로는, 버퍼 메모리(70)에 저장되어 있는 화상 데이터에 미리읽기 경계를 설정해 두고, 화상변경 요구에 의한 표시 위치가 미리읽기 경계를 넘어셨을 때, 미리읽기 처리가 개시되도록 한다.
도 21은 미리읽기 처리부(110) 및 디코딩부(112)가 화상의 디코딩을 실행할 때의 처리순서를 나타내는 플로우 차트이다. 먼저 입력장치(20)로부터의 화상변경 요구신호를 바탕으로, 요구되는 표시화상의 변경량을 도출한다(S50). 표시화상의 변경량은 상하좌우방향의 이동량 및 깊이방향의 이동량이다. 다음으로 계층 구조에 있어서의 그때까지의 표시영역의 네 모퉁이의 프레임 좌표로부터, 도출된 변경량에 의해 이동처의 표시영역의 네 모퉁이의 프레임 좌표를 결정한다(S52).
그리고 결정한 네 모퉁이의 프레임 좌표로 특정되는 영역을 표시하기 위한 화상영역이 이미 디코딩되어, 버퍼 메모리(70)의 버퍼영역(72) 또는 버퍼영역(74) 중 어느 것에 저장되어 있는지 판정한다(S54). 이미 버퍼영역(72) 또는 버퍼영역(74)에 필요한 화상영역이 존재하고 있을 경우에는(S54의 Y), 요구되는 축척률이 미리읽기 경계를 넘어섰는지 판정한다(S56). 미리읽기 경계를 넘어서지 않았다면, 버퍼 메모리(70)는 그대로 처리를 종료한다.
S52에서 결정한 네 모퉁이의 프레임 좌표로 특정되는 영역을 표시하기 위한 화상영역이 버퍼 메모리(70)에 존재하지 않을 경우(S54의 N), 및 요구되는 축척률이 미리읽기 경계를 넘어섰을 경우에(S56의 Y), 미리읽기 처리부(110)는 디코딩부(112)에 대하여 필요한 화상영역의 디코딩을 지시한다. 디코딩부(112)는 지시된 화상영역의 데이터를 메인 메모리(60)로부터 취득하여 디코딩하고, 버퍼영역(72) 또는 버퍼영역(74)에 저장한다(S60). 이로 인해, 표시화상 처리부(114)에 의한 표시화상 생성 전에, 필요한 화상영역을 버퍼 메모리(70)에 전개할 수 있다.
표시용 버퍼에 저장된 화상의 일부가 표시되고 있을 때, 디코딩용 버퍼에 있어서 다음으로 필요하게 되는 화상은 동일 계층 내에서의 이동에서는, 예를 들면 표시영역이 미리읽기 경계를 넘어섰을 때, 당해 표시영역이 이동방향의 시작점측의 끝에 포함되는 것과 같은 화상이다. 이 경우, 버퍼영역(72) 및 버퍼영역(74)에 저장되는 화상은 적어도 표시화상의 크기만큼의 중복영역을 가지며, 또한 미리읽기 경계의 설정 위치에 따라 중복영역이 늘어나게 된다. 미리읽기 경계를 넘었을 때에 새로 디코딩해야 할 화상의 범위는 미리 처리속도 등에 따라 설정해 둔다. 혹은 화상의 내용에 따라 변화시켜도 된다.
상기와 같이 디코딩용 버퍼를 이용하면, 새로 저장히는 화상과, 그때까지 디코딩용 버퍼에 저장되어 있던 화상의 일부가 중복되는 일이 있을 수 있다. 이러한 성질을 이용해서, 본 실시형태에서는 다음에 기술하는 처리에 의해 새로 디코딩할 영역을 줄여 디코딩 처리의 부하를 경감한다.
도 22는 버퍼 메모리(70)의 디코딩용 버퍼에 있어서, 새로 저장해야 할 화상이 그때까지 저장되어 있던 화상과 중복부분을 가질 경우의 디코딩부(112)의 기능 블록을 나타내고 있다. 디코딩부(112)는 중복부분의 영역을 특정하는 중복영역 취득부(170), 중복되지 않는 영역을 새로 디코딩하고, 그때까지 저장되어 있던 화상의 일부를 겹쳐쓰기하는 부분영역 디코딩부(172), 겹쳐쓰기한 화상을 반복해서 나열한 화상을 생성하는 리피트화상 생성부(174), 및 나열한 화상의 일부를 빼내 최종적인 디코딩화상으로서 디코딩용 버퍼에 저장하는 디코딩화상 저장부(176)를 포함한다.
도 23은 도 22의 디코딩부(112)가 화상을 디코딩용 버퍼에 저장하는 순서를 모식적으로 나타내고 있다. 상술한 대로, 표시용 버퍼에 저장된 화상 내에서 표시영역이 미리읽기 경계를 넘거나 했을 때에, 디코딩용 버퍼에 새로운 화상을 저장할 필요가 생긴다. 이 시점에서 이미 디코딩용 버퍼에 저장되어 있는 화상이, 동 도면 좌측 위의 화상(160)이다. 한편 새로 저장해야 할 화상은 동 도면 우측 위의 화상(162)이라고 한다. 즉 동 도면은 표시영역이 왼쪽으로 이동하고 있으며, 원래의 '동그라미'나 '삼각' 도형으로부터, 그 왼쪽에 있는 '별' 도형을 표시할 가망이 있다는 상황을 나타내고 있다.
상술한 이유로 인해, 화상(160)과 화상(162)은 중복영역을 가진다. 동 도면의 예에서는, 가로방향(X축)이 x0에서 x2까지의 영역으로 구성되는 화상(162) 중, x1에서 x2까지의 영역이 화상(160)과 중복되고 있다. 이러한 경우, 저장이 끝난 화상(160) 중, 중복되고 있는 x1에서 x2까지의 영역은 새로 저장해야 할 화상의 일부로서 그대로 이용한다.
구체적으로는, 부분영역 디코딩부(172)가, 새로 저장해야 할 화상(162) 중, 화상(160)과 중복되지 않는 x0에서 x1까지의 영역만 디코딩하고, 저장이 끝난 화상(160) 중 이제는 필요가 없는 x2에서 x3까지의 영역을 겹쳐쓰기한다(S70). 단, 예를 들면 압축을 타일화상 단위로 실시하고 있을 경우 등 압축 단위의 배치에 따라서는 중복되지 않는 x0에서 x1까지의 영역만 디코딩하는 것이 불가능한 경우가 있다. 이 경우에는 당해 영역을 포함하여, 디코딩이 가능한 최소의 영역을 디코딩한 뒤, x0에서 x1까지의 영역만 추출하여 x2에서 x3까지의 영역을 겹쳐쓰기한다.
S70의 처리를 실시하기 위해, 버퍼 메모리(70)의 버퍼영역(72, 74)에는 현재 저장되어 있는 화상의 좌측 아래의 좌표를 저장하는 영역을 마련한다. 그리고 중복영역 취득부(170)는 새로 저장해야 할 영역의 좌측 아래의 좌표와 비교함으로써 중복영역을 특정한다. 또한 디코딩 전에 중복영역을 특정하는 처리에 소정값 이상의 부하가 걸릴 경우에는 새로 저장해야 할 화상(162)을 모두 디코딩한 뒤에 중복되지 않는 영역만 겹쳐쓰기하도록 해도 된다.
다음으로 리피트화상 생성부(174)가, 그와 같이 해서 생긴 중간화상(164)을 가로방향으로 반복한 리피트화상(166)을 임시로 작성한다(S72). 단위화상을 세로방향, 가로방향으로 반복한 화상은 화상처리에 있어서 일반적으로 이용되는 기술에 의해 생성할 수 있다. 그리고 디코딩화상 저장부(176)가, 리피트화상(166)에 있어서 중간화상의 경계의 좌표를 0으로 했을 때, -(x1-x0)에서 x2-x1까지의 영역을 추출하여 디코딩용 버퍼에 새로 저장한다(S74). 이로 인해, 새로 저장해야 할 화상(162)이 디코딩용 버퍼에 저장되게 된다. 동 도면의 예에서는 가로방향의 이동에만 착안하였지만, 세로방향만의 이동이나, 세로방향, 가로방향의 쌍방 이동에서도 마찬가지로 처리함으로써 중복영역 이외의 영역만 디코딩하면 좋아진다. 단, 세로방향, 가로방향의 쌍방 이동의 경우에는 리피트화상(166)은 가로세로로 2회씩 중간화상(164)을 반복한 화상이 된다.
이와 같이 함으로써, 필요 최저한의 디코딩만으로 미리읽기한 영역을 디코딩용 화상에 저장할 수 있기 때문에, 디코딩 처리에 의한 화상표시의 레이텐시를 억제할 수 있다. 또한 디코딩용 버퍼에 저장하는 화상은 중간화상(164)으로 해도 된다. 이 경우, 표시화상 처리부(114)가, 사용자로부터의 지시입력에 따라 디코딩용 버퍼로부터 당해 중간화상(164)을 읽어내 상술한 S72, S74의 처리를 행하고, 새로 저장해야 할 화상(162)을 표시 처리부(44)의 프레임 메모리(90)에 묘화한다.
이상은 동일 계층에 있어서의 표시영역의 이동에 대한 미리읽기 처리에 있어서의 디코딩 수법이다. 한편 표시되고 있는 중심지점을 바꾸지 않고 확대하거나 축소하거나 하는 요구가 이루어질 가능성도 높다. 확대방향, 축소방향 중 어느 한 방향으로의 변경이라면, 전술한 미리읽기 경계를 넘어선 시점에서 디코딩용 화상에 순차적으로 새로운 화상을 저장해 가게 되는데, 2개의 미리읽기 경계를 넘지 않고 본래의 축척률로 되돌리는 요구가 이루어진 경우에는 디코딩용 화상에 새로 화상을 저장할 필요없이, 저장된 화상을 그대로 이용할 수 있다.
그 때문에, 버퍼 메모리(70)의 버퍼영역(72, 74)에는 현재 저장되어 있는 화상의 계층 번호를 저장하는 영역을 더 마련해도 된다. 그리고 계층의 깊이방향으로 설정된 미리읽기 경계를 넘어섰을 때, 디코딩용 버퍼에 저장해야 할 계층과 저장 완료된 계층이 동일하다면, 디코딩 처리를 행하지 않고 저장 완료된 화상을 그 상태 그대로 둔다. 이로 인해 표시화상의 확대, 축소에 있어서도 디코딩 처리를 최저한의 횟수로 할 수 있어, 처리의 부하, 레이텐시를 경감할 수 있다.
이상 기술한 본 실시형태에 따르면, 압축된 화상의 적어도 일부를 사용자로부터의 요구에 따라 표시하기 위한 화상처리장치에 있어서, 압축데이터를 저장하는 하드디스크 드라이브로부터 메인 메모리에, 데이터의 일부를 로딩한다. 메인 메모리에 로딩한 데이터를 디코딩하여 표시함으로써, 사용자로부터 표시화상 변경요구가 이루어졌을 때에, 하드디스크 드라이브로부터 필요한 데이터를 읽어내기 위해 요하는 시간을 절약할 수 있어 응답성이 향상된다. 또한 데이터의 일부만 로딩하는 양태로 함으로써, 메인 메모리 용량 이상의 사이즈의 화상이어도 표시 대상으로 할 수 있어, 대응 가능한 화상에 대한 제약이 적어진다.
또한 화상 데이터는 대략 동일한 데이터 사이즈로 블록으로 분할하여 하드디스크 드라이브에 저장해 두고, 메인 메모리에의 로딩은 블록 단위로 실시한다. 이로 인해, 메인 메모리의 연속된 영역에 로딩한 블록을 순차 저장해도, 새로 블록을 로딩할 때에 단편화를 일으키는 일이 없어져 메인 메모리를 유효하게 사용할 수 있는 데다가, 어드레스 관리가 용이해진다.
또한 화상 데이터를 블록으로 분할할 때에는 각 블록이 가지는 정보에 공간 국소성을 부여한다. 구체적으로는, 시작점의 타일화상으로부터 가로방향, 세로방향으로 동일하게 확장해 가도록, 한 블록에 포함되는 타일화상을 추가해 가고, 소정의 데이터 사이즈에 도달하기 직전에 한 블록의 영역을 결정함으로써, 블록을 정방형에 가까운 형상으로 한다. 혹은 미리 설정한 정방형이나 스트립형상의 구획 중에서, 래스터순으로 타일화상을 추가해 감으로써, 소정의 폭을 가지는 장방형에 가까운 형상으로 한다. 이렇게 함으로써, 표시에 필요한 블록수를 억제할 수 있어, 로딩의 횟수를 줄이는 동시에, 디코딩에 필요한 데이터의 메인 메모리로부터의 읽어내기를 용이하게 실시할 수 있다. 같은 이유로, 블록끼리의 경계가 T자로가 되도록 분할해도 된다.
또한 블록의 메인 메모리에의 로딩은 표시화상의 변경시 이외의 타이밍에도, 소정의 시간간격 등으로 수시 실시한다. 이때, 현재의 표시화상을 기점으로, 위치적 및 계층적으로 주변영역이 되는 지점을 소정의 규칙에 따라 결정하고, 당해 지점을 포함하는 블록 중 로딩되지 않은 것을 수시 로딩해 간다. 또한 화상의 내용상, 중요한 영역이나, 표시이력에 기초하여 사용자마다 예측할 수 있는 표시확률이, 소정의 임계값보다 높은 영역은 우선적으로 로딩해 둔다. 이로 인해, 사용자로부터의 표시화상 변경요구 후에 갑작스럽게 데이터를 하드디스크 드라이브로부터 로딩하거나, 네트워크를 통해 다운로딩해야 하는 사태가 일어날 가능성을 낮출 수 있는 동시에, 한번에 다수의 블록을 로딩할 필요가 없어져 로딩 처리에 의한 레이텐시의 발생을 억제할 수 있다.
또한 블록 분할시에, 다른 계층의 화상의 동일 영역부분을 하나의 블록에 포함시키도록 한다. 이때, 이 화상들이 가지는 용장성을 이용해, 한쪽 화상을 복원하는데 필요한 정보 중 다른쪽 화상이 보유하는 정보에 대해서는 블록 내에 2중으로 보유하지 않도록 한다. 예를 들면 저해상도 화상과, 그것을 확대하여 얻어지는 확대화상과 고해상도 화상과의 차분화상을 하나의 블록에 포함시켜 압축하면 고해상도 화상은 복원 가능하다. 본 실시형태에서는 상기와 같이 블록 단위로 메인 메모리에 로딩하기 때문에, 이와 같이 화상들의 용장성을 이용할 수 있다. 이렇게 함으로써 데이터의 압축률이 올라, 메인 메모리를 유효하게 사용할 수 있다.
또한 디코딩한 화상을 저장하는 버퍼영역으로서, 표시용 버퍼와 디코딩용 버퍼의 2개의 버퍼를 준비함으로써, 장래 표시될 것으로 예측할 수 있는 영역을 미리 디코딩하여 디코딩용 버퍼에 저장해 둔다. 이 경우, 새로운 화상을 디코딩용 버퍼에 저장해야 할 때에는 그때까지 저장되어 있던 화상과 중복되는 영역을 그대로 이용한다. 구체적으로는, 저장 완료된 화상 중 중복되지 않는 영역을 새로운 화상의 영역에서 겹쳐쓰기한 중간화상을 생성하고, 그것을 반복해서 구성되는 리피트화상 중 필요한 부분을 빼냄으로써 디코딩 처리를 최소한으로, 용이하게 새로운 화상을 저장할 수 있다.
또한 버퍼영역을 상기와 같은 구성으로 함으로써, 동일 계층 내에서의 표시영역의 이동은 처리 부하가 적어지기 때문에, 사용자의 표시화상 변경요구에 대한 응답성을 일정 이상 유지하기가 용이하다. 그 때문에, 표시화상과 다른 계층의 데이터를 우선적으로 메인 메모리에 로딩해 둠으로써, 버퍼 메모리와의 조합으로, 전체적으로 응답성이 좋아진다. 이들 형태는 장치의 구성을 복잡하게 하거나 대규모로 하거나 하지 않고 실현할 수 있다.
이상, 본 발명을 실시형태를 바탕으로 설명하였다. 상기 실시형태는 예시이며, 그들의 각 구성 요소나 각 처리 프로세스의 조합에 다양한 변형예가 가능한 점, 또한 그러한 변형예도 본 발명의 범위에 있는 점은 당업자에게 이해되는 바이다.
이상과 같이 본 발명은 화상처리장치, 화상표시장치, 컴퓨터, 게임기 등의 정보처리장치에 이용 가능하다.
1 화상처리 시스템
10 화상처리장치
12 표시장치
20 입력장치
30 제0계층
32 제1계층
34 제2계층
36 제3계층
38 타일화상
44 표시 처리부
50 하드디스크 드라이브
60 메인 메모리
70 버퍼 메모리
72 버퍼영역
74 버퍼영역
90 프레임 메모리
100 제어부
102 입력정보 취득부
104 압축데이터 분할부
106 로딩블록 결정부
108 로딩부
110 미리읽기(prefetch) 처리부
112 디코딩부
114 표시화상 처리부
120 식별번호 부여부
122 화상블록 생성부
170 중복영역 취득부
172 부분영역 디코딩부
174 리피트화상 생성부
176 디코딩화상 저장부
10 화상처리장치
12 표시장치
20 입력장치
30 제0계층
32 제1계층
34 제2계층
36 제3계층
38 타일화상
44 표시 처리부
50 하드디스크 드라이브
60 메인 메모리
70 버퍼 메모리
72 버퍼영역
74 버퍼영역
90 프레임 메모리
100 제어부
102 입력정보 취득부
104 압축데이터 분할부
106 로딩블록 결정부
108 로딩부
110 미리읽기(prefetch) 처리부
112 디코딩부
114 표시화상 처리부
120 식별번호 부여부
122 화상블록 생성부
170 중복영역 취득부
172 부분영역 디코딩부
174 리피트화상 생성부
176 디코딩화상 저장부
Claims (27)
- 화상의 적어도 일부를 디스플레이에 표시하는 화상처리장치로서,
처리 대상인 화상의 압축데이터를 분할하여 화상블록을 생성하여, 기억장치에 저장하는 압축데이터 분할부와
상기 압축데이터 분할부가 생성한 복수의 화상블록을 보유하는 기억장치와,
표시 중인 화상의 영역에 따라 소정의 규칙으로 결정한 필요영역의 데이터를 포함하는 화상블록을 상기 기억장치로부터 메모리에 로딩하는 로딩부와,
사용자로부터의 표시영역의 이동, 확대, 축소 중 어느 요구에 따라, 상기 로딩부가 로딩한 상기 화상블록의 적어도 일부를 메모리로부터 읽어내 디코딩하여, 새로운 표시화상을 생성하는 표시화상처리부를 구비하며,
상기 압축데이터 분할부는 화상을 압축하는 최소 단위인 타일화상의 압축데이터를, 소정의 데이터 사이즈를 넘지 않는 최대 데이터 사이즈가 되도록 정리하여 하나의 화상블록으로 하는 것을 특징으로 하는 화상처리장치. - 제1항에 있어서,
상기 기억장치는 처리 대상인 화상의, 복수의 해상도의 화상의 각각의 압축데이터를 분할하여 이루어지는 화상블록을 보유하는 것을 특징으로 하는 화상처리장치. - 삭제
- 제1항 또는 제2항에 있어서,
상기 압축데이터 분할부는,
화상을 구성하는 상기 타일화상에 대하여 래스터(raster)순으로 식별번호를 부여하는 식별번호 부여부와,
상기 식별번호 부여부가 부여한 식별번호순으로 타일화상의 압축데이터를 정리하여 하나의 화상블록으로 하는 화상블록 생성부를 구비하는 것을 특징으로 하는 화상처리장치. - 제1항 또는 제2항에 있어서,
상기 압축데이터 분할부는,
화상을 구성하는 상기 타일화상에 대하여 가로방향 및 세로방향으로 번갈아 인크리먼트(increment)해 나가도록 식별번호를 부여하는 식별번호 부여부와,
상기 식별번호 부여부가 부여한 식별번호순으로 타일화상의 압축데이터를 정리하여 하나의 화상블록으로 하는 화상블록 생성부를 구비하는 것을 특징으로 하는 화상처리장치. - 제1항 또는 제2항에 있어서,
상기 압축데이터 분할부는,
화상을 구성하는 타일화상을 소정 간격으로 구분한 매크로타일에 대하여 래스터순으로, 동시에, 각 매크로타일을 구성하는 타일화상에 대하여 래스터순으로 식별번호를 부여하는 식별번호 부여부와,
상기 식별번호 부여부가 부여한 식별번호순으로 타일화상의 압축데이터를 정리하여 하나의 화상블록으로 하는 화상블록 생성부를 구비하는 것을 특징으로 하는 화상처리장치. - 제1항 또는 제2항에 있어서,
상기 압축데이터 분할부는,
상기 화상블록의 화상상의 경계선의 적어도 일부가 T자형상이 되도록 화상블록을 생성하는 것을 특징으로 하는 화상처리장치. - 제2항에 있어서,
상기 로딩부는 표시 중의 영역에서 소정 범위 내의 영역, 및 표시 중인 화상을 소정의 축척률로 확대, 또는 축소한 화상 중 표시 중인 영역을 포함하는 소정의 영역, 중 적어도 어느 것을 상기 필요영역으로 하는 것을 특징으로 하는 화상처리장치. - 제1항 또는 제2항에 있어서,
상기 필요영역의 데이터를 포함하는 화상블록이 메모리에 모두 저장되어 있는지 아닌지를 소정의 시간간격으로 판정하고, 저장되어 있지 않은 화상블록의 로딩을 상기 로딩부에 요구하는 로딩블록 결정부를 더 구비하며,
상기 로딩부는 상기 로딩블록 결정부의 요구에 따라 상기 화상블록을 로딩하는 것을 특징으로 하는 화상처리장치. - 제1항 또는 제2항에 있어서,
상기 로딩부는 상기 필요영역 외에, 미리 설정된 화상 내의 영역, 및 사용자의 표시이력으로부터 추측되는 표시확률이 소정의 임계값보다 높은 영역의 데이터를 포함하는 화상블록을 더 로딩하는 것을 특징으로 하는 화상처리장치. - 제1항 또는 제2항에 있어서,
상기 기억장치는 처리 대상의 화상 중, 공통영역을 나타내는 복수의 해상도의 화상의 압축데이터를 하나의 화상블록에 포함시켜 보유하는 것을 특징으로 하는 화상처리장치. - 제1항에 있어서,
상기 기억장치는 공통영역을 나타내는 2개의 해상도의 화상 중, 저해상도 화상과, 상기 저해상도 화상을 확대한 화상과 고해상도 화상과의 차분화상을 각각 압축한 데이터를 하나의 화상블록에 포함시켜 보유하고,
상기 표시화상 처리부는 상기 저해상도 화상과 상기 차분화상을 각각 디코딩하여 더함으로써, 상기 고해상도 화상을 디코딩하는 것을 특징으로 하는 화상처리장치. - 제1항에 있어서,
상기 표시화상 처리부는 상기 화상블록의 적어도 일부를 메모리로부터 읽어내 디코딩하는 디코딩부와,
상기 디코딩부가 디코딩한 화상을 저장하는 버퍼 메모리와,
상기 버퍼 메모리에 저장된 화상의 적어도 일부를 읽어내, 표시할 영역을 묘화하는 묘화부를 구비하고,
상기 디코딩부는,
새로운 화상을 상기 버퍼 메모리에 저장할 때, 그때까지 저장되어 있던 화상과 새로운 화상과의 중복영역을 특정하는 중복영역 취득부와,
상기 새로운 화상 중 상기 중복영역을 제외한 부분영역을 포함하는 영역의 데이터를 디코딩하는 부분영역 디코딩부와,
그때까지 저장되어 있던 화상 중 상기 중복영역과, 상기 부분영역 디코딩부가 디코딩한 상기 부분영역을 연결시켜 상기 버퍼 메모리에 저장하는 디코딩화상 저장부를 구비하는 것을 특징으로 하는 화상처리장치. - 화상의 적어도 일부를 디스플레이에 표시하는 화상처리방법으로서,
처리 대상인 화상의 압축데이터를 소정의 규칙으로 분할하여 이루어지는 복수의 화상블록을 생성하여 기억장치에 저장하는 스텝과,
표시 중인 화상의 영역에 따라 소정의 규칙으로 결정한 필요영역의 데이터를 포함하는 화상블록을 상기 기억장치로부터 메모리에 로딩하는 스텝과,
사용자로부터의 표시영역의 이동, 확대, 축소 중 어느 요구에 따라, 로딩한 상기 화상블록의 적어도 일부를 메모리로부터 읽어내 디코딩하여 새로운 표시화상을 생성하는 스텝을 포함하고,
상기 저장하는 스텝은 화상을 압축하는 최소 단위인 타일화상의 압축데이터를, 소정의 데이터 사이즈를 넘지 않는 최대 데이터 사이즈가 되도록 정리하여 하나의 화상블록으로 하는 것을 특징으로 하는 화상처리방법. - 삭제
- 제14항에 있어서,
상기 저장하는 스텝은 동일한 영역을 나타내는 다른 해상도의 화상의 압축데이터를 하나의 화상블록에 포함시키는 것을 특징으로 하는 화상처리방법. - 컴퓨터에, 화상의 적어도 일부를 디스플레이에 표시하는 기능을 실현시키는 컴퓨터 프로그램을 기록하는 컴퓨터 판독가능한 기록매체로서, 상기 컴퓨터 프로그램은,
처리 대상인 화상의 압축데이터를 소정의 규칙으로 분할하여 이루어지는 복수의 화상블록을 생성하여 기억장치에 저장하는 기능과,
표시 중인 화상의 영역에 따라 소정의 규칙으로 결정한 필요영역의 데이터를 포함하는 화상블록을 상기 기억장치로부터 메모리에 로딩하는 기능과,
사용자로부터의 표시영역의 이동, 확대, 축소 중 어느 요구에 따라, 로딩한 상기 화상블록의 적어도 일부를 메모리로부터 읽어내 디코딩하여 새로운 표시화상을 생성하는 기능을 컴퓨터에 실현시키며,
상기 저장하는 기능은, 화상을 압축하는 최소 단위인 타일화상의 압축 데이터를, 소정의 데이터 사이즈를 넘지 않는 최대 데이터 사이즈가 되도록 정리하여 하나의 화상블록으로 하는 것을 특징으로 하는 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체. - 화상의 적어도 일부를 디스플레이에 표시하기 위해 기억장치로부터 읽혀지는 화상의 데이터 구조를 기록한 컴퓨터 판독가능한 기록매체로서, 상기 화상의 데이터 구조는,
화상을 압축하는 최소 단위인 타일화상마다의 압축데이터를, 소정의 데이터 사이즈를 넘지 않는 최대 데이터 사이즈가 되도록 정리한 화상블록의 데이터와, 각 화상블록의 식별정보를 대응시킨 것을 특징으로 하는 화상의 데이터 구조를 기록한 컴퓨터 판독가능한 기록 매체. - 제18항에 있어서,
화상을 구성하는 상기 타일화상에 대하여, 래스터순으로 식별번호를 부여하고, 상기 식별번호순으로 상기 타일화상의 압축데이터를 정리하여 하나의 화상블록으로 한 것을 특징으로 하는 화상의 데이터 구조를 기록한 컴퓨터 판독 가능한 기록 매체. - 제18항에 있어서,
화상을 구성하는 상기 타일화상에 대하여, 가로방향 및 세로방향으로 번갈아 인크리먼트해 나가도록 식별번호를 부여하고, 상기 식별번호순으로 상기 타일화상의 압축데이터를 정리하여 하나의 화상블록으로 한 것을 특징으로 하는 화상의 데이터 구조를 기록한 컴퓨터 판독 가능한 기록 매체. - 제18항에 있어서,
화상을 구성하는 타일화상을 소정 간격으로 구분한 매크로타일에 대하여 래스터순으로, 동시에, 각 매크로타일을 구성하는 타일화상에 대하여 래스터순으로 식별번호를 부여하고, 상기 식별번호순으로 상기 타일화상의 압축데이터를 정리하여 하나의 화상블록으로 한 것을 특징으로 하는 화상의 데이터 구조를 기록한 컴퓨터 판독 가능한 기록 매체. - 사용자의 요구에 따라 화상 내의 영역을 디스플레이에 표시하는 화상처리장치로서,
상기 요구에 기초하여 필요한 영역의 압축화상 데이터를 메모리로부터 읽어내 디코딩하는 디코딩부와,
상기 디코딩부가 디코딩한 화상을 저장하는 버퍼 메모리와,
상기 버퍼 메모리에 저장한 화상의 적어도 일부를 읽어내, 표시할 영역을 묘화하는 표시화상 처리부를 구비하고,
상기 디코딩부는 새로운 화상을 상기 버퍼 메모리에 저장할 때, 그때까지 저장되어 있던 화상과 새로운 화상과의 중복영역을 특정하는 중복영역 취득부와,
상기 새로운 화상 중 상기 중복영역을 제외한 부분영역을 포함하는 영역의 압축화상 데이터를 디코딩하는 부분영역 디코딩부와,
그때까지 저장되어 있던 화상 중 상기 중복영역과, 상기 부분영역 디코딩부가 디코딩한 상기 부분영역을 연결시켜 상기 버퍼 메모리에 저장하는 디코딩화상 저장부를 구비하는 것을 특징으로 하는 화상처리장치. - 제22항에 있어서,
상기 부분영역 디코딩부는 또한, 그때까지 상기 버퍼 메모리에 저장되어 있던 화상 중 상기 중복영역 이외의 영역을, 새로 디코딩한 상기 부분영역에서 겹쳐쓰기한 중간화상을 생성하고,
상기 화상처리장치는 또한,
상기 부분영역 디코딩부가 생성한 중간화상을 반복해서 나열한 리피트화상을 생성하는 리피트화상 생성부를 구비하며,
상기 디코딩화상 저장부는 상기 리피트화상 생성부가 생성한 리피트화상 중, 상기 중복영역과 상기 부분영역으로 이루어지는 영역을 추출하여 상기 버퍼 메모리에 저장하는 것을 특징으로 하는 화상처리장치. - 제22항 또는 제23항에 있어서,
상기 버퍼 메모리는 현재 표시되고 있는 영역을 묘화하기 위한 화상을 저장하는 표시용 버퍼영역과, 상기 요구에 기초하여 예측되는, 상기 표시용 버퍼영역에 저장된 화상의 다음에 필요하게 될 화상을 새로 디코딩하여 저장하기 위한 디코딩용 버퍼영역을 포함하고,
상기 디코딩부는 상기 디코딩용 버퍼영역에 저장되어 있던 화상 중 상기 중복영역과, 새로 디코딩한 상기 부분영역을 연결시켜 상기 디코딩용 버퍼영역에 저장하는 것을 특징으로 하는 화상처리장치. - 사용자의 요구에 따라 화상 내의 영역을 디스플레이에 표시하는 화상처리방법으로서,
상기 요구에 기초하여 필요한 영역의 압축화상 데이터를 새로 디코딩하여 버퍼 메모리에 저장할 때, 그때까지 저장되어 있던 화상과 새로운 화상과의 중복영역을 특정하는 스텝과,
상기 새로운 화상 중 상기 중복영역을 제외한 부분영역을 포함하는 영역의 압축화상 데이터를 메인 메모리로부터 읽어내 디코딩하는 스텝과,
그때까지 저장되어 있던 화상 중 상기 중복영역과, 새로 디코딩한 상기 부분영역을 연결시켜 상기 버퍼 메모리에 저장하는 스텝과,
상기 버퍼 메모리에 저장한 화상의 적어도 일부를 읽어내, 표시할 영역을 묘화하는 스텝을 포함하는 것을 특징으로 하는 화상처리방법. - 제25항에 있어서,
그때까지 상기 버퍼 메모리에 저장되어 있던 화상 중 상기 중복영역 이외의 영역을, 새로 디코딩한 상기 부분영역에서 겹쳐쓰기한 중간화상을 생성하는 스텝을 더 포함하고,
상기 버퍼 메모리에 저장하는 스텝은 상기 중간화상을 반복해서 나열한 리피트화상을 생성하는 스텝과,
상기 리피트화상 중, 상기 중복영역과 상기 부분영역으로 이루어지는 영역을 추출하여 상기 버퍼 메모리에 저장하는 스텝을 포함하는 것을 특징으로 하는 화상처리방법. - 컴퓨터에, 사용자의 요구에 따라 화상 내의 영역을 디스플레이에 표시시키는 기능을 실현시키는 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록매체로서, 상기 컴퓨터 프로그램은,
상기 요구에 기초하여 필요한 영역의 압축화상 데이터를 새로 디코딩하여 버퍼 메모리에 저장할 때, 그때까지 저장되어 있던 화상과 새로운 화상과의 중복영역을 특정하는 기능과,
상기 새로운 화상 중 상기 중복영역을 제외한 부분영역을 포함하는 영역의 압축화상 데이터를 메인 메모리로부터 읽어내 디코딩하는 기능과,
그때까지 저장되어 있던 화상 중 상기 중복영역과, 새로 디코딩한 상기 부분영역을 연결시켜 상기 버퍼 메모리에 저장하는 기능과,
상기 버퍼 메모리에 저장한 화상의 적어도 일부를 읽어내, 표시할 영역을 묘화하는 기능을 컴퓨터에 실현시키는 것을 특징으로 하는 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2008-255655 | 2008-09-30 | ||
JP2008255655A JP5331432B2 (ja) | 2008-09-30 | 2008-09-30 | 画像処理装置および画像処理方法 |
JPJP-P-2008-255563 | 2008-09-30 | ||
JP2008255563A JP4809412B2 (ja) | 2008-09-30 | 2008-09-30 | 画像処理装置および画像処理方法 |
PCT/JP2009/003043 WO2010038337A1 (ja) | 2008-09-30 | 2009-06-30 | 画像処理装置および画像処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110074884A KR20110074884A (ko) | 2011-07-04 |
KR101401336B1 true KR101401336B1 (ko) | 2014-05-29 |
Family
ID=42073126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117009478A KR101401336B1 (ko) | 2008-09-30 | 2009-06-30 | 화상처리장치 및 화상처리방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8878869B2 (ko) |
EP (1) | EP2330587B1 (ko) |
KR (1) | KR101401336B1 (ko) |
CN (1) | CN102165515B (ko) |
WO (1) | WO2010038337A1 (ko) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5392199B2 (ja) * | 2010-07-09 | 2014-01-22 | ソニー株式会社 | 画像処理装置および方法 |
JP5474887B2 (ja) | 2011-08-01 | 2014-04-16 | 株式会社ソニー・コンピュータエンタテインメント | 動画データ生成装置、動画像表示装置、動画データ生成方法、動画像表示方法、および動画像ファイルのデータ構造 |
JP5548671B2 (ja) * | 2011-12-27 | 2014-07-16 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理システム、画像提供サーバ、情報処理装置、および画像処理方法 |
JP5722761B2 (ja) | 2011-12-27 | 2015-05-27 | 株式会社ソニー・コンピュータエンタテインメント | 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造 |
US9646564B2 (en) * | 2012-01-20 | 2017-05-09 | Canon Kabushiki Kaisha | Information processing apparatus that controls display of display sections of contents, method of controlling the same, and storage medium |
JP2013167798A (ja) * | 2012-02-16 | 2013-08-29 | Canon Inc | 画像生成装置及びその制御方法 |
JP2014186196A (ja) | 2013-03-25 | 2014-10-02 | Toshiba Corp | 映像処理装置および映像表示システム |
US9971844B2 (en) * | 2014-01-30 | 2018-05-15 | Apple Inc. | Adaptive image loading |
US9563927B2 (en) * | 2014-03-25 | 2017-02-07 | Digimarc Corporation | Screen watermarking methods and arrangements |
CN104331213A (zh) * | 2014-08-04 | 2015-02-04 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
US9813654B2 (en) * | 2014-08-19 | 2017-11-07 | Sony Corporation | Method and system for transmitting data |
KR102155479B1 (ko) * | 2014-09-01 | 2020-09-14 | 삼성전자 주식회사 | 반도체 장치 |
EP3001385B1 (en) * | 2014-09-29 | 2019-05-01 | Agfa Healthcare | A system and method for rendering a video stream |
US10410398B2 (en) * | 2015-02-20 | 2019-09-10 | Qualcomm Incorporated | Systems and methods for reducing memory bandwidth using low quality tiles |
CN105578194B (zh) * | 2016-01-06 | 2018-12-25 | 珠海全志科技股份有限公司 | Jpeg图像解码方法和解码器 |
CN109886861B (zh) * | 2019-01-08 | 2023-04-11 | 北京城市网邻信息技术有限公司 | 一种高效率图档格式heif图像加载方法及装置 |
CN111538867B (zh) * | 2020-04-15 | 2021-06-15 | 深圳计算科学研究院 | 一种有界增量图划分方法和*** |
WO2022061723A1 (zh) * | 2020-09-25 | 2022-03-31 | 深圳市大疆创新科技有限公司 | 一种图像处理方法、设备、终端及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006113801A (ja) * | 2004-10-14 | 2006-04-27 | Canon Inc | 画像処理結果表示装置、画像処理結果表示方法およびプログラム |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01188866A (ja) | 1988-01-25 | 1989-07-28 | Canon Inc | 画像形成装置 |
JPH0314431A (ja) | 1989-06-08 | 1991-01-23 | Nippon Matai Co Ltd | 化粧包装方法 |
JPH09114431A (ja) * | 1995-10-18 | 1997-05-02 | Sapiensu:Kk | 静止画像再生表示方法および静止画像再生表示装置 |
SG64486A1 (en) | 1997-03-27 | 1999-04-27 | Sony Corp | Method and apparatus for information processing computer readable medium and authoring system |
JPH1188866A (ja) * | 1997-07-18 | 1999-03-30 | Pfu Ltd | 高精細画像表示装置及びそのプログラム記憶媒体 |
JP4420415B2 (ja) * | 1998-07-03 | 2010-02-24 | キヤノン株式会社 | 符号化方法及び符号化装置 |
US6956667B2 (en) * | 1999-12-24 | 2005-10-18 | Agfa Gevaert N. V. | Page composing method using stored page elements and apparatus for using the same |
US7012576B2 (en) * | 1999-12-29 | 2006-03-14 | Intel Corporation | Intelligent display interface |
US6873343B2 (en) * | 2000-05-11 | 2005-03-29 | Zoran Corporation | Scalable graphics image drawings on multiresolution image with/without image data re-usage |
FR2816138B1 (fr) * | 2000-10-27 | 2003-01-17 | Canon Kk | Decodage de donnees numeriques |
FR2826227B1 (fr) * | 2001-06-13 | 2003-11-28 | Canon Kk | Procede et dispositif de traitement d'un signal numerique code |
JP3937841B2 (ja) * | 2002-01-10 | 2007-06-27 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
JP2004214983A (ja) | 2002-12-27 | 2004-07-29 | Canon Inc | 画像処理方法 |
JP4148462B2 (ja) * | 2003-01-20 | 2008-09-10 | 株式会社リコー | 画像処理装置、電子カメラ装置及び画像処理方法 |
JP4059802B2 (ja) * | 2003-04-17 | 2008-03-12 | 株式会社サピエンス | 画像表示方法 |
JP4609918B2 (ja) | 2003-09-19 | 2011-01-12 | 株式会社リコー | 画像処理システム、画像処理方法、プログラム及び情報記録媒体 |
JP2005181853A (ja) | 2003-12-22 | 2005-07-07 | Sanyo Electric Co Ltd | 画像供給装置 |
JP4743820B2 (ja) | 2004-01-19 | 2011-08-10 | キヤノン株式会社 | 画像表示装置およびプログラム |
JP4382000B2 (ja) * | 2005-03-11 | 2009-12-09 | 株式会社リコー | 印刷制御システム及び印刷制御方法 |
US7768520B2 (en) * | 2006-05-03 | 2010-08-03 | Ittiam Systems (P) Ltd. | Hierarchical tiling of data for efficient data access in high performance video applications |
US7768516B1 (en) * | 2006-10-16 | 2010-08-03 | Adobe Systems Incorporated | Image splitting to use multiple execution channels of a graphics processor to perform an operation on single-channel input |
JP4958831B2 (ja) * | 2008-04-02 | 2012-06-20 | キヤノン株式会社 | 画像符号化装置及びその制御方法 |
-
2009
- 2009-06-30 EP EP09817381.8A patent/EP2330587B1/en active Active
- 2009-06-30 WO PCT/JP2009/003043 patent/WO2010038337A1/ja active Application Filing
- 2009-06-30 US US13/120,785 patent/US8878869B2/en active Active
- 2009-06-30 KR KR1020117009478A patent/KR101401336B1/ko active IP Right Grant
- 2009-06-30 CN CN200980138067.9A patent/CN102165515B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006113801A (ja) * | 2004-10-14 | 2006-04-27 | Canon Inc | 画像処理結果表示装置、画像処理結果表示方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2010038337A1 (ja) | 2010-04-08 |
US20110221780A1 (en) | 2011-09-15 |
US8878869B2 (en) | 2014-11-04 |
CN102165515A (zh) | 2011-08-24 |
KR20110074884A (ko) | 2011-07-04 |
EP2330587A1 (en) | 2011-06-08 |
EP2330587B1 (en) | 2019-04-10 |
EP2330587A4 (en) | 2012-02-01 |
CN102165515B (zh) | 2014-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101401336B1 (ko) | 화상처리장치 및 화상처리방법 | |
US9607357B2 (en) | Image processing device for displaying moving image and image processing method thereof | |
EP2464093B1 (en) | Image file generation device, image processing device, image file generation method, and image processing method | |
US9373308B2 (en) | Multi-viewport display of multi-resolution hierarchical image | |
JP5722761B2 (ja) | 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造 | |
CN103119543B (zh) | 图像处理装置、内容制作装置、图像处理方法及内容文件的数据结构 | |
KR101557327B1 (ko) | 동영상 데이터 생성장치, 동영상 표시장치, 동영상 데이터 생성방법, 동영상 표시방법, 및 동영상 파일의 데이터 구조 | |
JP2006501522A5 (ko) | ||
US8749566B2 (en) | System and method for an optimized on-the-fly table creation algorithm | |
CN102377972A (zh) | 图像处理设备和图像处理方法 | |
JP5331432B2 (ja) | 画像処理装置および画像処理方法 | |
JP4809412B2 (ja) | 画像処理装置および画像処理方法 | |
JP5544253B2 (ja) | 画像処理装置、画像処理方法、および動画像ファイルのデータ構造 | |
US8972877B2 (en) | Information processing device for displaying control panel image and information image on a display | |
JP5467083B2 (ja) | 画像処理装置、画像処理方法、および画像のデータ構造 | |
JP5520890B2 (ja) | 画像処理装置、画像データ生成装置、画像処理方法、画像データ生成方法、および画像ファイルのデータ構造 | |
US20040213467A1 (en) | Image processing apparatus | |
JP5731816B2 (ja) | 画像処理装置、画像処理方法 | |
KR100617658B1 (ko) | 표시 데이터 출력 장치 및 방법 | |
JP4390822B2 (ja) | 画像処理装置 | |
JP2014013278A (ja) | 画像処理装置 | |
JP2007188400A (ja) | Dramへのアクセス方法 | |
JP2007003550A (ja) | Osd出力装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application | ||
J301 | Trial decision |
Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20130220 Effective date: 20140430 |
|
S901 | Examination by remand of revocation | ||
GRNO | Decision to grant (after opposition) | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170421 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180503 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190503 Year of fee payment: 6 |