KR20080011469A - 화상 처리 장치, 화상 처리 방법, 및 기억 매체 - Google Patents

화상 처리 장치, 화상 처리 방법, 및 기억 매체 Download PDF

Info

Publication number
KR20080011469A
KR20080011469A KR1020087001692A KR20087001692A KR20080011469A KR 20080011469 A KR20080011469 A KR 20080011469A KR 1020087001692 A KR1020087001692 A KR 1020087001692A KR 20087001692 A KR20087001692 A KR 20087001692A KR 20080011469 A KR20080011469 A KR 20080011469A
Authority
KR
South Korea
Prior art keywords
data stream
filter
print data
print
image processing
Prior art date
Application number
KR1020087001692A
Other languages
English (en)
Other versions
KR100815728B1 (ko
Inventor
마사히또 야마모또
Original Assignee
캐논 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 캐논 가부시끼가이샤 filed Critical 캐논 가부시끼가이샤
Publication of KR20080011469A publication Critical patent/KR20080011469A/ko
Application granted granted Critical
Publication of KR100815728B1 publication Critical patent/KR100815728B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/123Software or firmware update, e.g. device firmware management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

화상 처리 장치는 인쇄 요구 데이터 스트림을 외부로부터 수신하는 인쇄 요구 데이터 스트림 수신부, 인쇄 요구 데이터 스트림을 해석하고 화상 형성을 실행하는 인쇄 잡을 제어하는 인쇄 잡 컨트롤러, 및 인쇄 요구 데이터 스트림에 대한 데이터 처리를 실행하여, 처리된 인쇄 요구 데이터 스트림을 생성하는 필터를 포함한다. 화상 처리 장치는 인쇄 요구 데이터 스트림 수신부에 의해 수신된 인쇄 요구 데이터 스트림을 제1 인터페이스를 통해 필터로 보내고, 필터에 의해 생성된 처리된 인쇄 요구 데이터 스트림을 제2 인터페이스를 통해 인쇄 잡 컨트롤러로 보낸다.
인쇄 데이터 스트림, 인쇄 잡 컨트롤러, 프레임워크, 해석기, 필터

Description

화상 처리 장치, 화상 처리 방법, 및 기억 매체{IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD, AND STORAGE MEDIUM}
본 발명은 화상 처리 장치, 화상 처리 제어 방법 및 프로그램에 관한 것이다. 특히, 본 발명은 프린터 기능 등을 갖는 화상 처리 장치, 해당 화상 처리 장치에 적용되는 화상 처리 제어 방법, 컴퓨터가 관련 화상 처리 제어 방법을 실행하도록 하는 데 사용되는 프로그램, 및 해당 프로그램을 기억하는 기억 매체에 관한 것이다.
종래, 화상 처리 장치를 위한 소프트웨어는 실시간 OS(operating system: 운영 체계) 상의 정적이고 고정적인 소위 펌웨어로서 주로 구성된다. 이와 같은 펌웨어가 내부에 복수의 모듈을 포함하는 경우라도, 그 전체는 단일 로드 모듈에 정적으로 링크되어 있는 상태에서 화상 처리 장치의 비휘발성 메모리 내에 저장된다. 따라서, OS의 부팅시에, 펌웨어는 하드 디스크 등의 비휘발성 메모리로부터 RAM(random access memory)으로 로딩되어 실행되거나, 또는 ROM(read only memory)등의 비휘발성 메모리상에서 직접 실행된다. 특히, 경제적 효율성과 안전성을 위해, 저렴한 화상 처리 장치 등에 내장된 시스템을 구성하는 펌웨어는 일반적으로 부분 모듈이 동적으로 로딩되거나 링크되지 않도록 구성된다. 즉, 펌웨어가 전술한 바와 같이 구성되는 이유는, 동적 링크를 달성하기 위해 필요한 기호표(symbol table)의 저장 용량, 기호의 어드레스에 대한 분석 처리를 위한 오버헤드 등이 장치의 비용 효율을 떨어뜨리기 때문이고, 추가적으로 로딩되고 링크된 서브 모듈이, 자신이 링크되기 전에 충분히 평가되고 달성된 전체 시스템의 품질 및 안전을 위태롭게 할 위험이 있기 때문이다.
결과적으로, 본 출원인에 의해, 예컨대 일본 특허공개공보 제H11-282684호, 일본 특허공개공보 제2003-256216호 등에 개시된 바와 같이, 내장된 시스템의 펌웨어의 실시간 OS 상에 소프트웨어 동작 환경의 하나 이상의 계층이 제공되는 화상 처리 장치가 개발되어 있다. 더 구체적으로, 개시된 화상 처리 장치는 전술한 바 등의 추가된 소프트웨어 동작 환경에서 동적 로딩, 동적 링킹, 동적 메모리 동작 등의 소프트웨어의 동적 특성을 지원한다. 추가된 소프트웨어 동작 환경은 해석기(interpreter), 및 한 세트의 API(application programming interface) 그룹과 프레임워크 그룹의 세트로 구성되고, 일종의 OS 또는 그 OS 상에서 실행되는 소프트웨어를 위한 소위 컴퓨팅 플랫폼을 제공한다. 여기서, 해석기는 소정의 명령 세트 내에 포함된 명령어들로 구성된 일련의 명령열을 연속적으로 판독하고, 해석하고, 실행한다. 명령 세트가 하드웨어의 CPU용 명령 세트와 동등한 것으로 간주되면, 해석기는 특별히 가상 머신(virtual machine)이라 명명될 수 있다. API 그룹 및 프레임워크 그룹의 세트는 이 소프트웨어 동작 환경의 낮은 계층에 존재하는 실제 실시간 OS에 의해 제공되는 자원, 및 소프트웨어 동작 환경에서 실행되는 소프 트웨어를 위해, 하드웨어 자원으로부터 추상화된 다양한 자원 그룹으로의 액세스를 제공한다. 여기서, 자원은 프로세서와, 메모리, 파일 시스템 및 네트워크 인터페이스를 포함하는 각종 I/O(입력/출력) 등에 의한 명령 실행 컨텍스트를 포함한다는 것을 유념해야 한다. 특히, 명령 실행 컨텍스트에서, 소프트웨어 동작 환경은 실제 CPU 및 실시간 OS에 의해 제공되는 멀티태스크 메카니즘과는 무관하게 명령 실행 컨텍스트를 관리할 수 있다. 마찬가지로, 메모리에서, 소프트웨어 동작 환경은 독립적인 메모리 관리를 제공할 수 있다.
전술한 소프트웨어 실행 환경상에서 실행되는 소프트웨어가 해석기에 의해 연속적으로 판독되고, 해석되고, 실행됨으로써, 전술한 처리 동안에 명령열이 모니터링되고, 이에 따라 시스템에 불리한 영향을 미치는 동작이 제거될 수 있다. 또한, 소프트웨어 실행 환경상의 소프트웨어로부터 각 자원으로 액세스하는 경우, 자원은 소프트웨어 실행 환경에 의해 제공되는 API 그룹 및 프레임워크 그룹을 통해 간접적으로 관리됨으로써, 시스템에 불리한 영향을 미치는 동작이 전술한 처리 동안에 제거될 수 있다. 따라서, 펌웨어 내에 해석기, API 그룹 및 프레임워크 그룹으로 구성되는 소프트웨어 실행 환경의 계층을 제공하는 접근 방법은 기본적으로, 정적이고 고정적으로 구성될 저렴한 내장 시스템의 펌웨어 내에 소프트웨어의 동적 특성을 유효하게 부분적으로 도입하게 한다.
전술한 접근 방법에 있어서, 소프트웨어 실행 환경의 계층을 달성하기 위한 해석기로서 JavaTM 가상 머신을 채택할 수 있고, 이에 따라 JavaTM에 관련된 API 그 룹 및 프레임워크 그룹을 채택할 수 있다. 또한, 본 출원인은 화상 처리 장치의 펌웨어 내에 JavaTM 플랫폼을 포함하는 다기능 장치인 MEAPTM(Multifunctional Embedded Application Platform)을 2003년에 시장에 내놓았다.
한편, 예를 들어, 일본 특허공개공보 제H11-053132호(JP '132라고 함)에는 네트워크 컴퓨터 내장 프린터, 및 관련 프린터를 포함하는 컴퓨터 네트워크 시스템이 개시되어 있다. 더 구체적으로, JP '132에서, 인쇄될 데이터 파일, 및 데이터 파일에 대응하는 어플리케이션은, 컴퓨터 네트워크로부터, 네트워크 컴퓨터가 내부에 구비되는 어플리케이션 다운로딩형 프린터 내로 다운로딩되고, 다운로딩된 어플리케이션은 네트워크 컴퓨터에 의해 기동되고, 이에 의해 데이터 파일이 추상화되어 래스터(raster) 화상으로 변환되고, 획득된 래스터 화상은 실제로 인쇄된다. 또한, JP '132에는 어플리케이션이 JavaTM 애플릿인 경우, 및 어플리케이션이 인쇄 데이터 파일과 함께 클라이언트로부터 푸싱(push)되는 경우, 및 프린터가 어플리케이션 서버 등으로부터 어플리케이션을 풀링(pull)하는 경우가 개시되어 있다.
또한, 일본 특허공개공보 제H11-306107호(JP '107이라 함)에는 복수의 주변 장치, 단말 장치들을 동작시키기 위한 소프트웨어를 갖는 복수의 단말 장치, 및 적어도 주변 장치들을 동작시키기 위한 소프트웨어에 관한 데이터베이스를 갖는 서버 장치가 송신 채널에 접속되고, 소정의 통신 프로토콜에 기초한 이들 장치들 중 네트워크 통신이 행해지는 네트워크 통신 시스템이 개시되어 있다. 더 구체적으로, JP '107에 있어서, 주변 장치는 그 주변 장치를 동작시키기 위한 소프트웨어의 전 부 또는 일부에 대응하는 최신 모듈 정보 또는 서버 장치로/로부터의 소프트웨어에 의해 사용되는 모듈을 요구/획득하는 클라이언트 제어부, 및 획득된 최신 모듈 정보를 단말 장치들에 전달하는 소프트웨어 전달 에이전트로 구성된다. 또한, JP '132에는 JavaTM 애플릿 및 JavaTM 어플리케이션이 주변 장치들을 동작시키기 위한 소프트웨어에 의해 사용될 클라이언트측 모듈로서 공급될 수 있다는 것이 개시되어 있다.
또한, PDL(page description language) 프린터에 있어서, 커스터마이즈, 사소한 수정 등과 같은 개별 처리가 요구될 수 있다. 즉, 고객의 인쇄 환경 및 각 환경에서의 요구는 다양하다. 예를 들어, 기본적인 비즈니스 시스템에서는, 고객 환경들의 각각에서 독립적으로 개발된 비즈니스 어플리케이션이 인쇄 데이터를 직접 생성하도록 구성될 수 있다. 또한, 비즈니스 어플리케이션이 프린터 드라이버를 통해 인쇄 데이터를 생성하는 경우라도, 일단 정상적으로 동작을 개시한 전체 시스템의 안정성을 유지하기 위한 고객의 요청 또는 요구는 매우 강하며, 이로 인해 프린터 드라이버를 용이하게 변경하는 것은 허용되지 않을 수도 있다. 그 외에, 소정 종류의 프린터는 다른 회사에 의해 개발된 PDL 데이터를 해석하고 인쇄하는 기능을 갖는다. 이 경우, 몇몇 종류의 시스템은, 관련 프린터 전용으로 개발된 프린터 드라이버 및 PDL 개발 소스에 의해 개발된 프린터 드라이버 대신 제3자에 의해 개발된 프린터 드라이버를 통해 인쇄가 실행되도록 구성될 수 있으며, 이로 인해 프린터 드라이버를 변경하는 것이 허용되지 않을 수 있다. 즉, 실제 고객의 환경은 다양하기 때문에, 이들 환경의 각각을 독립적으로 다룰 필요가 있다.
실제 인쇄 환경의 이러한 제한들에 있어서, 프린터 벤더(vendor)는 고객의 환경측으로부터 처리를 요구하지 않고 프린터측으로부터 이들을 처리함으로써 다양한 고객 요구를 충족시켜야 한다. 예를 들어, 양면 인쇄, 제본 등을 실행하는 마무리 기능이 새로운 프린터 제품의 새로운 기능으로서 제공되는 경우, 새로운 제품의 개발뿐만 아니라 개발된 전용 프린터 드라이버를 통해 인쇄 잡(job)이 입력되거나, 또는 고객의 비즈니스 어플리케이션이 신규로 추가된 명령 스트링을 포함하는 PDL 데이터를 생성하도록 갱신되면, 전술한 신규의 기능을 전부 사용하는 것이 가능한 것은 물론이다. 그러나, 이는 임의의 고객의 시스템에 영향을 미치지 않고 프린터측으로부터 그 새로운 기능을 다루는 것에 의해서만 프린터의 새로운 기능을 사용할 수 있도록 실제 요구된다.
대안적으로, 복수의 벤더가 소정의 PDL 사양에 대응하는 프린터를 공급하는 경우, 벤더의 성능에 따라 PDL의 해석에 차이가 존재하는 호환성의 문제는 언제든지 발생할 가능성이 있다. 따라서, 이러한 종류의 문제가 발생하여 실제 비즈니스에서 장애가 되는 고객의 환경에 있어서, 프린터측은 그 문제가 개별 처리일지라도 이를 처리하고 제거해야 한다.
또한, 드문 경우로서, 제품에는 프린터 펌웨어 구현(또는 패키징 또는 장착)시의 문제로 인해 포함되는, 특정 패턴의 PDL 데이터와 관련하여 현실화되는 버그가 포함되어 출하될 수 있다. 정상적인 조건 하에서, 프린터는 충분한 품질 평가를 통해 제품으로서 출하(shipping)되기 때문에, 전술한 특정 패턴의 PDL 데이터는 관련 프린터가 복수의 고객의 인쇄 환경에서 정상으로 사용되는 경우에는 출현하지 않으므로, 버그는 전혀 문제되지 않는다. 그럼에도 불구하고, 버그는, 예컨대 전술한 비즈니스 시스템 등에서 현실화될 수 있다. 따라서, 이 경우, 특히 관련 고객의 환경에서 가능한 한 신속하게 버그에 대한 대책을 세우는 것이 필요함은 물론이다.
또한, 특정 어플리케이션에 의해 생성되는 PDL 데이터는 프린터 구현의 특성으로 인해 최적화될 범위를 갖는 데이터 패턴을 포함할 수 있다. 예를 들어, 용장인 기술(redundant description)을 포함하는 PDL 데이터가 최적의 기술을 포함하는 PDL 데이터와 비교되는 경우, 최적의 기술을 포함하는 PDL 데이터에 대한 인쇄 성능의 개선은 용장인 기술을 포함하는 PDL 데이터에 대한 프린터 성능에 비해 현저하다. 따라서, 전술한 특정 어플리케이션이 사용되는 고객의 인쇄 환경에서, 어플리케이션 또는 프린터 드라이버가 갱신될 수 없으면, 프린터측의 처리에 의해 PDL 데이터를 최적화하는 것이 바람직하다.
어떠한 고객의 시스템에도 영향을 미치지 않고 프린터측 상의 전술한 요구들을 충족시키기 위해, 개별 처리를 위해 프린터를 구성하고 해제하는 펌웨어를 변경하는 방법이 존재하며, 실제로 이 방법을 채택할 수 있다. 그러나, 개별 처리를 위해 펌웨어를 변경하는 경우, 전체 장치의 품질 재평가를 포함하여, 개발 기간은 길어지고, 개발 비용은 높아진다. 또한, 고객의 환경에 전달되는 장치에 내장된 펌웨어를 갱신하는 경우, 당해 기술 분야의 엔지니어 등에 의한 고레벨 유지 보수가 계속하여 필요하기 때문에, 고객의 요구에 대한 신속한 만족감의 관점 및 비용 효율성의 관점에서 문제점은 여전히 남아있다. 사실상, 프린터의 전체 펌웨어가 변경되지 않더라도, 고객 요구의 일부는, 수신된 PDL 데이터 스트림이 해석되기 전에 전-처리(pre-process)를 추가하고, 그 후 전-처리에서 PDL 데이터 스트림 자체로의 필요한 변환을 실행함으로써 충족될 수 있다. 이러한 이유로, 다른 펌웨어 외에, 수신된 PDL 데이터 스트림이 해석되기 전에 실행될 전-처리를 달성하기 위한 소프트웨어만이 유연하고 확장가능한 방식으로 추가될 수 있는 더욱 동적인 메카니즘을 제공할 필요가 있다.
그러나, 배경 기술에 의한 전술한 요구들을 만족시키고자 하더라도, 다음과 같은 문제들이 존재한다.
내장 시스템의 펌웨어 내에 JavaTM 플랫폼과 같은 소프트웨어 동작 환경 계층을 포함하는 MEAPTM 등의 종래의 장치에 있어서, 소프트웨어 동작 환경 상의 펌웨어 외에 어플리케이션을 내장한 새로운 장치를 신규로 개발하는 것이 가능하다. 따라서, JavaTM 어플리케이션은 API를 통해 장치의 인쇄 기능을 액세스할 수 있다. 그러나, JavaTM 플랫폼이 펌웨어 내의 내장 어플리케이션 계층에 위치하고 있기 때문에, 동일한 계층에서의 고유한 내장 어플리케이션으로서 달성되는 인쇄 데이터 수신 기능 및 인쇄 서버 기능은 JavaTM 어플리케이션으로 전환될 수 없다. 즉, 네트워크를 통해 인쇄 데이터를 수신하기 위한 다양한 인쇄 서비스 프로토콜을 갖는 인쇄 서버 기능은 JavaTM 어플리케이션측 상에 다시 구현되어야 하므로, 인쇄 서버 기능 등을 실행하는 경우에 개발 부담, 평가 부담, 메모리 용량의 관점에서 비효율적이다.
한편, 내장 시스템의 펌웨어 내에 소프트웨어 동작 환경을 포함하지 않는 다른 종래의 장치에 있어서, 전체 내장 시스템은 동적 링크 및 플러그-인(plug-in)을 채용할 수 있도록 구성된다. 즉, 전체 시스템은 동적 구성을 갖는다. 동적 특성이 요구되는 부분은 수신된 PDL 데이터 스트림이 해석되기 전에 실행될 전-처리가 플렉시블하고 확장가능한 방식으로 추가되는 유일한 메카니즘이라는 전제하에서, 전술한 바와 같은 종래 장치의 그러한 접근 방법은 동적 소프트웨어로서 전체 시스템을 구성하는 전반적인 비용에 따른 비용 증가 및 품질 보증의 어려움으로 인해 저렴한 소규모 시스템에는 적합하지 않다.
본 발명은 전술한 문제점들을 고려하여 이루어진 것으로서, 그 목적은 PDL 프린터의 커스터마이즈화의 생산성을 개선하는 화상 처리 장치, 관련 화상 처리 장치에 적용되는 화상 처리 제어 방법, 및 컴퓨터가 관련 화상 처리 제어 방법을 실행하게 하는 데 사용되는 프로그램을 제공하는 것이다.
본 발명의 다른 목적은 화상 처리 장치를 제공하는 것으로, 이 화상 처리 장 치는,
인쇄 요구 데이터 스트림을 외부로부터 수신하도록 구성된 인쇄 요구 데이터 스트림 수신부;
인쇄 요구 데이터 스트림을 해석하고 화상 형성을 실행하는 인쇄 잡을 제어하도록 구성된 인쇄 잡(job) 컨트롤러;
인쇄 요구 데이터 스트림에 대해 데이터 처리를 행하여, 처리된 인쇄 요구 데이터 스트림을 생성하도록 구성된 필터부;
인쇄 요구 데이터 스트림 수신부에 의해 수신된 인쇄 요구 데이터 스트림을 필터부로 송신하도록 구성된 제1 인터페이스; 및
필터부에 의해 생성된 처리된 인쇄 요구 데이터 스트림을 인쇄 잡 컨트롤러로 송신하도록 구성된 제2 인터페이스를 포함한다.
여기서, 예를 들어, 화상 처리 장치는, 프로세서에 의해 처리되는 고유 명령어에 기초하여 구성되는 펌웨어인 고유 환경을 구비하고,
고유 환경은, 고유 명령어와는 무관하게 규정되는 명령 세트(instruction set)에 기초하여 구성되는 프로그램을 동적으로 로딩하고, 링크하고, 실행하는 해석기(interpreter) 환경을 포함하며,
인쇄 요구 데이터 스트림 수신부는 고유 환경상에 배치되고, 필터부는 해석기 환경상에 배치되는 것이 바람직하다.
여기서, 예를 들어, 화상 처리 장치는 인쇄 요구 데이터 스트림 수신부에 의해 수신된 인쇄 요구 데이터 스트림을 잡 컨트롤러에 송신하도록 구성된 제3 인터 페이스부를 더 포함하는 것이 바람직하다.
여기서, 예를 들어, 필터부는,
인쇄 요구 데이터 스트림 내의 소정의 데이터 패턴과 일치하는 부분을 검출하도록 구성된 패턴 매칭부; 및
패턴 매칭부에 의해 검출된 인쇄 요구 데이터 스트림 내의 일치된 부분에 대응하는 소정의 부분 데이터 스트림을 생성하고, 일치된 부분을 생성된 소정의 부분 데이터 스트림으로 치환하도록 구성된 치환부를 더 포함하는 것이 바람직하다.
여기서, 예를 들어, 화상 처리 장치는 해석기 환경에서 동작하는 프로그램을 사용자가 조작하는 사용자 인터페이스를 해석기 환경 내에 구성하는 사용자 인터페이스 구성부를 더 포함하고,
필터부 내의 인쇄 요구 데이터 스트림에 대한 데이터 처리를 위한 처리 파라미터는, 사용자 인터페이스 구성부에 의해 구성된 사용자 인터페이스를 사용하여 사용자에 의해 조작되는 것이 바람직하다.
여기서, 예를 들어, 화상 처리 장치는 해석기 환경 내에서, 해석기 환경에서 동작하는 프로그램에 대한 명령어의 판독 및 해석을 병렬적으로 실행하도록 구성된 스레드부(thread unit)를 더 포함하고,
필터부는, 스레드부에 의한 독립적인 실행 컨텍스트 하에서, 인쇄 요구 데이터 스트림에 대한 데이터 처리를 자율적으로 실행하는 것이 바람직하다.
여기서, 예를 들어, 해석기 환경은 JavaTM 플랫폼에 기초한 것이 바람직하 다.
또한, 본 발명의 다른 목적은 화상 처리 장치를 제공하는 것으로서, 이 화상 처리 장치는,
인쇄 요구 데이터 스트림을 외부로부터 수신하도록 구성된 인쇄 요구 데이터 스트림 수신부;
인쇄 요구 데이터 스트림을 해석하고 화상 형성을 실행하는 인쇄 잡을 제어하도록 구성된 인쇄 잡 컨트롤러;
인쇄 요구 데이터 스트림에 대해 데이터 처리를 행하여, 처리된 인쇄 요구 데이터 스트림을 생성하도록 구성된 필터부;
인쇄 요구 데이터 스트림 수신부에 의해 수신된 인쇄 요구 데이터 스트림을 필터부로 송신하도록 구성된 제1 인터페이스부;
필터부에 의해 생성된 처리된 인쇄 요구 데이터 스트림을 인쇄 잡 컨트롤러에 송신하도록 구성된 제2 인터페이스부; 및
복수의 필터부들을 관리하고, 인쇄 요구 데이터 스트림의 데이터 경로 내에 필터부를 배치할 수 있도록 제어하며, 배치된 필터부가 인쇄 요구 데이터 스트림을 순차적으로 처리하도록 구성된 필터 관리부를 포함한다.
여기서, 예를 들어, 화상 처리 장치는 인쇄 요구 데이터 스트림의 데이터 경로 내의 필터 관리부에 의해 관리된 복수의 필터부들 중, 원하는 필터부를 선택적으로 배치하기 위한 사용자 조작을 수용하도록 구성된 필터 배치 조작 수용부를 더 포함하는 것이 바람직하다.
여기서, 예를 들어, 화상 처리 장치는 필터 관리부가 인쇄 요구 데이터 스트림의 데이터 경로 내에 어떠한 필터부도 배치하지 않는 경우, 인쇄 요구 데이터 스트림 수신부에 의해 수신된 인쇄 요구 데이터 스트림을 인쇄 잡 컨트롤러로 직접 송신하도록 구성된 제3 인터페이스부를 더 포함하는 것이 바람직하다.
여기서, 예를 들어, 화상 처리 장치는 필터부를 외부로부터 화상 처리 장치 내에 도입하여, 도입된 필터부를 필터 관리부의 관리하에 두기 위한 필터 도입부를 더 포함하는 것이 바람직하다.
또한, 본 발명의 다른 목적은, 인쇄 요구 데이터 스트림을 외부로부터 수신하도록 구성된 인쇄 요구 데이터 스트림 수신부, 인쇄 요구 데이터 스트림을 해석하고 화상 형성을 실행하는 인쇄 잡을 제어하도록 구성된 인쇄 잡 컨트롤러, 및 인쇄 요구 데이터 스트림에 대해 데이터 처리를 실행하여, 처리된 인쇄 요구 데이터 스트림을 생성하도록 구성된 필터부를 포함하는 화상 처리 장치를 위한 제어 방법으로서,
인쇄 요구 데이터 스트림 수신부에 의해 수신된 인쇄 요구 데이터 스트림을 필터부로 송신하는 제1 인터페이스 단계; 및
필터부에 의해 생성된 상기 처리된 인쇄 요구 데이터 스트림을 인쇄 잡 컨트롤러로 송신하는 제2 인터페이스 단계를 포함한다.
여기서, 예를 들어, 제어 방법은 인쇄 요구 데이터 스트림 수신부에 의해 수신된 인쇄 요구 데이터 스트림을 잡 컨트롤러로 송신하는 제3 인터페이스 단계를 더 포함하는 것이 바람직하다.
또한, 본 발명의 다른 목적은 인쇄 요구 데이터 스트림을 외부로부터 수신하도록 구성된 인쇄 요구 데이터 스트림 수신부, 인쇄 요구 데이터 스트림을 해석하고 화상 형성을 실행하는 인쇄 잡을 제어하도록 구성된 인쇄 잡 컨트롤러, 및 인쇄 요구 데이터 스트림에 대해 데이터 처리를 실행하여, 처리된 인쇄 요구 데이터 스트림을 생성하도록 구성된 필터부를 포함하는 화상 처리 장치를 위한 제어 방법으로서,
인쇄 요구 데이터 스트림 수신부에 의해 수신된 인쇄 요구 데이터 스트림을 필터부로 송신하는 제1 인터페이스 단계;
필터부에 의해 생성된 상기 처리된 인쇄 요구 데이터 스트림을 인쇄 잡 컨트롤러로 송신하는 제2 인터페이스 단계; 및
복수의 필터부들을 관리하고, 인쇄 요구 데이터 스트림의 데이터 경로 내에 필터부를 배치할 수 있도록 제어하며, 배치된 필터부가 인쇄 요구 데이터 스트림을 순차적으로 처리하게 하는 필터 관리 단계를 포함한다.
여기서, 예를 들어, 제어 방법은 인쇄 요구 데이터 스트림의 데이터 경로 내의 필터 관리 단계에서 관리되는 복수의 필터부들 중, 원하는 필터부를 선택적으로 배치하기 위한 사용자 조작을 수용하는 필터 배치 조작 수용 단계를 더 포함하는 것이 바람직하다.
여기서, 예를 들어, 제어 방법은 필터 관리 단계에서 인쇄 요구 데이터 스트림의 데이터 경로 내에 어떠한 필터부도 배치하지 않도록 구성되는 경우, 인쇄 요구 데이터 스트림 수신부에 의해 수신된 인쇄 요구 데이터 스트림을 인쇄 잡 컨트 롤러로 직접 송신하는 제3 인터페이스 단계를 더 포함하는 것이 바람직하다.
또한, 상기 제어 방법을 컴퓨터가 실행하게 하는 컴퓨터 프로그램, 및 상기 제어 방법을 컴퓨터가 실행하게 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 기억 매체가 제공된다.
본 발명에 따르면, 프린터에 의해 수신된 PDL 데이터 스트림이 해석되기 전에 전-처리를 실행하기 위한 필터 섹션을 유연하게 확장가능한 소프트웨어로서 구현하고, 이렇게 하여 구현된 필터 섹션을 안정성이 요구되는 프린터 펌웨어의 다른 섹션의 구현으로부터 분리함으로써, PDL 프린터의 커스터마이즈화의 생산성을 개선할 수 있다.
본 발명의 상기 목적 및 그외 다른 목적은 첨부된 도면을 참조한 예시적인 실시예에 관한 다음의 상세한 기술으로부터 명백해질 것이다.
본 발명에 따르면, PDL 프린터의 커스터마이즈화의 생산성을 개선하는 화상 처리 장치, 관련 화상 처리 장치에 적용되는 화상 처리 제어 방법, 및 컴퓨터가 관련 화상 처리 제어 방법을 실행하게 하는 데 사용되는 프로그램을 기억하는 기억 매체를 제공할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명을 실시하기 위한 최상의 모드에 대해 기술한다.
(제1 실시예)
도 1은 본 발명의 제1 실시예에 따른 화상 처리 장치의 하드웨어 구성을 도시한 블록도이다.
도 1에서, 프린터(1000)는 그 내부에 프린터 컨트롤러(1600)를 포함한다.
프린터 컨트롤러(1600)에 있어서, 네트워크 인쇄 서버용 CPU(central processing unit: 중앙 처리 장치)(1)는 재기입가능한 플래시 ROM(3) 내에 저장된 제어 프로그램에 기초하여, 복수의 외부 장치로부터 송신된 인쇄 데이터, 및 프린터 제어 명령어 등의 다양한 데이터 송신/수신 요구를 일괄적으로 제어한다. 여기서, 복수의 외부 장치는 LAN(local area network: 근거리 통신망)(2000)에 접속된 호스트 컴퓨터 등(도시되지 않음)이고, LAN(2000) 상에서의 통신은 시스템 버스(4)에 접속된 LANC(local area network controller: 근거리 통신망 컨트롤러)(5)에 의해 제어된다. 전술한 다양한 데이터 송신/수신 요구는 소정의 네트워크 통신 프로토콜에 따라 외부 장치로부터 송신된다.
CPU(1)는 ROM(9) 내에 저장된 제어 프로그램 등, DKC(disk controller: 디스크 컨트롤러)(15)를 통해 접속된 외부 메모리(10) 내에 저장된 제어 프로그램 및 자원 데이터 등에 기초하여 시스템 버스(4)에 접속된 다양한 장치들로의 전체 액세스를 제어한다. 또한, CPU(1)는 래스터(raster) 컨트롤러(12)가 출력 화상 정보를 생성하게 하고, 또한 마킹(marking) 엔진(16)이, 수신된 인쇄 데이터에 기초하여 화상 신호를 출력하게 한다.
RAM(2)은 주 메모리, 및 CPU(1)의 작업 영역 등과 같은 임시 저장 영역으로서 사용된다.
LED(light emitting diode: 발광 다이오드)(6)는 프린터 컨트롤러(1600)의 동작 상태를 표시하는 디스플레이부로서 기능한다. 예를 들어, LED(6)는 LANC(5)와 LAN(2000) 사이의 전기적 접속 상태(LINK), 및 네트워크 통신 모드(10베이스(Base) 모드 또는 100베이스 모드; 전이중 모드(full duplex mode) 또는 반이중 모드(half duplex mode)) 등의 다양한 동작 상태를 깜박임 패턴 또는 점등 색에 의해 나타낸다.
조작 패널(조작부)(18)은 버튼들, 액정 패널, 액정 패널 상에 중첩된 터치 패널, 및 LED 등의 표시부로 구성된다. 여기서, 버튼들은 프린터(1000)의 동작 모드 등을 설정하고 인쇄 데이터의 삭제 등과 같은 다양한 동작을 실행하는 데 사용되며, 액정 패널은 프린터(1000)의 동작 상태를 표시하는 데 사용된다.
또한, 마킹 엔진(marking engine)(16)은 공지된 인쇄 기술을 사용함으로써 인쇄를 실행하는 데 사용된다. 더 구체적으로, 마킹 엔진(16)은 전자사진 방식(레이저 빔 방식), 잉크젯 방식, 염료 승화 방식(열전사 방식) 등을 통해 전사지 상에 화상 형성을 실행한다.
도 2는 도 1에 도시된 화상 처리 장치가 동작하게 하는 소프트웨어(모듈)의 구성을 도시한 계층도이다.
여기서, 도 2는 상위 계층에 위치한 모듈이 하위 계층 내의 모듈에 의존한다는 것, 및 라인에 의해 접속된 모듈들 사이에 강한 의존성이 존재한다는 것을 나타낸다.
참조번호(201)는 화상 처리 장치의 펌웨어를 구성하는 표준 섹션인 고유 코 드부를 나타내고, 하드웨어인 CPU(1)에 의해 직접 실행되는 고유 코드들로 구성된다. 또한, 고유 코드부(201)는 화상 처리 장치가 개발될 때 단일 로드 모듈에 펌웨어로서 정적으로 링크되고, 화상 처리 장치가 실제로 제조될 때 화상 처리 장치의 비휘발성 메모리 내에 저장된다. 화상 처리 장치가 동작을 개시할 때 펌웨어는 비휘발성 메모리로부터 RAM(2)에 전개되고, 화상 처리가 동작하고 있는 동안에 CPU(1)는 RAM(2)으로부터 코드들을 순차 판독하여 해석한다. 그러나, CPU(1)는 동적 링크를 실행하지 않는다. 대안적으로, CPU에 의해 직접 판독되어 액세스될 수 있는 ROM 등과 같은 비휘발성 메모리 내에 펌웨어를 저장할 수 있고, CPU가 펌웨어를 RAM으로 전개하지 않고 ROM으로부터 코드를 순차 판독하여 해석하게 할 수 있다.
참조번호(202)는 프린터로서의 중심적인 기능을 화상 처리 장치에 제공하기 위한 내장 어플리케이션인 인쇄 어플리케이션을 나타낸다. 인쇄 어플리케이션(202)은 클라이언트로부터의 요구에 응답하여 인쇄 서비스를 제공하고, 제어 API(204)를 통해 클라이언트에 의해 요구된 인쇄 잡을 실행한다.
참조번호(203)는 클라이언트에 의해 입력된 인쇄 잡을 수신하는 인쇄 요구 수신 모듈을 나타낸다. 인쇄 요구 수신 모듈(203)은 RTOS(real-time operating system: 실시간 운영 체계)(209)를 통해 프로토콜 스택(stack)(210)에 의존한다. 클라이언트로부터의 인쇄 요구는 물리적으로 EthernetTM 등과 같은 네트워크 및 USB(Universal Serial Bus), IEEE1394(Institute of Electrical and Electronics Engineers 1394) 등과 같은 다양한 인터페이스를 통해 프린터에 송신되고, 각 접속 모드들에 따른 인쇄 요구를 실행하기 위한 어플리케이션 프로토콜이 규정된다. 또한, 인쇄 요구 수신 모듈(203)은 인쇄를 위한 어플리케이션 프로토콜의 서버 기능을 갖는다. 인쇄 서비스를 위한 어플리케이션 프로토콜은, 예컨대 네트워크 프로토콜에만 관련하여 LPR(Line Printer daemon Protocol), SMB(Server Message Block), PAP(Password Authentication Protocol), 네트웨어(NetWare) 등과 같은 다양한 사양들을 포함하기 때문에, 이들 사양들을 획득하기 위해 막대한 개발 비용 및 품질 평가 비용이 요구된다. 또한, 인쇄 요구 수신 모듈(203)은 이들 복수의 인터페이스의 각각에 존재하는 다양한 인쇄 서비스 프로토콜로 구성되는 멀티 프로토콜을 지원한다.
인쇄 요구 수신 모듈(203)은 화상 처리 장치의 저장 장치 내에 인쇄 잡들의 큐(queue)를 구성할 수 있다, 즉 인쇄 요구 수신 모듈(203)은 스풀(spool) 기능을 가질 수 있다. 이 경우, 인쇄 요구 수신 모듈(203)은 클라이언트로부터 인쇄 잡 요구를 수용하고, 이를 큐에 저장하기 때문에, 클라이언트는 해방(release)된다. 또한, 큐에 저장된 인쇄 잡은, 인쇄 잡이 실제로 실행될 수 있는 경우 스케쥴링 알고리즘에 따라 순차적으로 처리된다.
참조번호(204)는 화상 처리 장치에 의해 제공된 장치 서비스를 액세스하는 응용 프로그래밍 인터페이스인 제어 API를 나타낸다. 또한, 제어 API(204)를 구성하는 주요 인터페이스들 중의 하나는 인쇄 잡을 실행하고 제어하는 인터페이스이다.
참조번호(205)는 화상 처리 장치에 의해 제공되는 다양한 화상 처리 작업을 제어하는 잡 제어 모듈을 나타낸다. 여기서, 주요 화상 처리 작업은 인쇄 잡이다. 잡 제어 모듈(205)은 제어 API(204)를 통해 실행이 요구되는 인쇄 잡의 데이터 스트림을 해석하고, 인쇄 잡의 기술을 인쇄될 인쇄 데이터의 기술으로부터 분리시킨다. 여기서, 인쇄 잡의 기술은 인쇄 데이터의 해석 및 추상화, 인쇄 출력에 사용된 전사지 공급의 지정, 양면 인쇄 등과 같은 인쇄 모드의 지정, 배지 트레이의 지정, 소트(차례맞춤)의 지정, 스테이플링(stapling), 제본 등과 같은 마무리의 지정 등에 관한 동작 파라미터를 지정하는 환경 데이터를 포함한다. 한편, 인쇄 데이터는 PDL에 의해 기술되고, 주로 각 페이지의 묘화가 그 안에 기술된다. 또한, 잡 제어 모듈(205)은 번역기(translator)(206), 렌더러(renderer)(207) 및 ME(marking engine) 제어 모듈(208)을 제어한다. 또한, 잡 제어 모듈(205)은 처리들이 번역기(206), 렌더러(207), 및 ME 제어 모듈(208)의 순서로 실행되도록 인쇄 데이터 스트림의 스케쥴링을 실행한다.
참조번호(206)는 PDL에 의해 기술된 인쇄 데이터를 해석한 후, 이를 렌더링 처리에 적합한 인쇄 중간 언어의 기술의 인쇄 데이터로 변환하는 번역기를 나타낸다. 여기서, 렌더링 처리에 적합한 인쇄 중간 언어에 의한 인쇄 데이터의 기술은 표시 목록(display list)으로 명명된다. 번역기(206)는 다양한 PDL 사양들의 각 사양마다 다른 고유한 구현을 가지기 때문에, 임의의 번역기는 PDL을 렌더러에 대해 고유한 표시 목록으로 변환한다.
참조번호(207)는 표시 목록을 래스트 화상으로 전개하는 렌더러를 나타낸다. 여기서, 렌더러(207)는 RTOS(209)를 통해 렌더러 드라이버(212)에 의존한다.
참조번호(208)는 화상 처리 장치 내의 전사지 상에 화상 형성을 실행하기 위한 마킹 엔진(16)을 제어하는 ME 제어 모듈을 나타낸다. 여기서, ME 제어 모듈(208)은 RTOS(209)를 통해 ME 드라이버(213)에 의존한다.
참조번호(209)는 화상 처리 장치의 고유 코드 펌웨어의 실행 환경을 제공하는 플랫폼인 RTOS를 나타낸다. 그 위에서 동작하는 소프트웨어를 위해, RTOS(209)는 소프트웨어 구성을 위해 사용된 기본 서비스, 및 화상 처리 장치의 하드웨어 자원이 추상화되는 서비스를 제공하고, 또한 소프트웨어로부터 용이하게 사용될 수 있는 인터페이스에 화상 처리 장치의 하드웨어를 추상화하기 위한 장치 드라이버 구성의 프레임워크를 제공한다. 또한, RTOS(209)에 의해 제공되는 기능들은 CPU(1)에 의한 명령 실행 컨텍스트가 추상화되는 태스크 관리, 복수의 실행 컨텍스트를 가상적으로 동시에 동작시킴으로써 병행 처리(concurrent processing)를 달성하는 멀티태스크 메카니즘, 태스크들 사이의 메시지들을 교환하고 동기화하는 태스크간(cross-task) 통신(메시지 큐, 세마포어(semaphore) 등), 다양한 메모리 관리, 타이머, 클록, 인터럽션 관리, DMA(direct memory access) 제어 등을 포함한다.
참조번호(210)는 RTOS(209)의 프레임워크 내로 내장되는 프로토콜 스택을 나타내고, 하위 외부 인터페이스 드라이버(211)에 의해 제어되는 외부 인터페이스 상의 전송 계층과 동일하거나 그보다 낮은 프로토콜을 구현한다. 예를 들어, 네트워크 인터페이스의 경우, TCP/IP(Transmission Control Protocol/Internet Protocol: 전송 제어 프로토콜/인터넷 프로토콜), UDP/IP(User Datagram Protocol/Internet Protocol: 사용자 데이터그램 프로토콜/인터넷 프로토콜) 등과 같은 프로토콜이 달성되고, 내장된 응용 계층에 대해서는 RTOS(209)를 통해 버클리 소켓(Berkley socket) 등과 같은 응용 프로그래밍을 위한 인터페이스가 제공된다. 또한, 예를 들어, 외부 인터페이스가 USB인 경우, IEEE 표준 1284.4 등과 같은 프로토콜이 달성된다.
참조번호(211)는 IEEE1394, USB, RS232C(Recommended Standard 232 version C), 센트로닉스(Centronics) 인터페이스 등과 같은 다양한 인터페이스 및 네트워크 인터페이스에 접속을 제공하는 하드웨어를 구동하는 외부 인터페이스 드라이버를 나타낸다. 예를 들어, 네트워크의 경우에, 외부 인터페이스 드라이버(211)는 EthernetTM 등과 같은 네트워크에 접속하기 위한 네트워크 인터페이스 하드웨어를 구동시킴으로써, 물리 계층 프로토콜을 달성한다.
참조번호(212)는 렌더러(207)를 구동하는 렌더러 드라이버를 나타낸다. 렌더러(207)는 표시 목록을 래스터 화상으로 전개하는 하드웨어이지만, 소프트웨어에 의해 달성될 수 있다.
참조번호(213)는 전사지 상에 화상 형성을 실행하기 위한 마킹 엔진(16)을 구동하는 ME 드라이버를 나타낸다.
참조번호(214)는, 화상 처리 장치의 조작 패널(18)의 디스플레이부으로의 출력을 처리하고, 키 및 터치 패널로부터의 입력 이벤트를 처리하는 조작 패널 드라이버를 나타낸다.
참조번호(215)는 다양한 해석기 환경 중에서, JavaTM 플랫폼의 런타임 환경에 기초한 소프트웨어 플랫폼인 해석기 환경을 나타낸다. 또한, 화상 처리 장치에 대해 고유한 API 그룹 및 프레임워크 그룹이 해석기 환경(215)에 추가된다. 여기서, 이 소프트웨어 플랫폼은 그 위에서 동작하고 해석기 언어로 기술되는 프로그램에 동적 소프트웨어 동작 환경을 제공한다. 또한, 해석기 환경(215)은 고유 코드에 의해 구현된 (고유 코드부(201)에 포함된) 섹션, 및 해석기 언어에 의해 기술된 프로그램으로서 구현된 (해석기 코드부(220)에 포함된) 섹션을 포함한다.
참조번호(216)는 소정의 명령 세트에 의해 기술되는 명령열로부터 명령어를 순차 판독하고, 해석하고, 실행하는 해석기를 나타낸다. 본 실시예에서, 해석기(216)는 JavaTM 가상 머신으로 이루어지고, 명령 세트는 JavaTM 바이트 코드로 표현된다.
참조번호(217)는 표준 API 라이브러리 및 프레임워크의 그룹을 나타낸다. 그룹(217)에서, RTOS(209)에 의해 제공되는 추상화된 다양한 컴퓨팅 자원은 해석기 환경(215)에 고유한 모델에 의해 더 추상화됨으로써, 그 위에서 동작하는 프로그램을 위한 실행 환경이 제공된다. 또한, 그룹(217)은 JavaTM 플랫폼을 구성하는 표준 클래스 라이브러리 그룹, 및 OSGi(Open Services Gateway initiative) 프레임워크에 의해 달성된다.
상기 JavaTM 플랫폼은, 예를 들어 가상 머신에 의한 명령 실행 컨텍스트가 추상화되는 스레드(thread) 관리, 복수의 실행 컨텍스트를 가상으로 동시에 동작시킴으로써 병행 처리를 달성하는 멀티-스레드 메카니즘, 스레드들 사이의 메시지를 교환하고 동기화 하는 스레드간 통신, 고도로 추상화된 다양한 메모리 관리(수정 등), 타이머, 클록, 예외 관리, 파일 시스템 및 네트워크로의 액세스, 외부 입/출력 장치와의 인터페이스 등을 포함하며, RTOS(209)에 대응하는 추상화된 기능을 제공한다.
또한, OSGi 프레임워크는 단일 JavaTM 가상 머신 상의 복수의 JavaTM 어플리케이션(서비스)을 동작시키고, 어플리케이션의 라이프사이클을 관리하며, 어플리케이션간 통신 기능을 제공한다. 또한, 복수의 시스템 서비스는 OSGi 프레임워크 상에 미리 인스톨되었다. 여기서, 준비된 시스템 서비스들은 해석기 환경에 새로운 어플리케이션을 추가하고 갱신하며 삭제하는 서비스 관리 서비스, 사용자가 조작 패널(18) 상에 표시된 클래스를 조작할 수 있도록 애플릿 인터페이스에 따라 구현된 JavaTM 클래스를 조작 패널(18) 상에 표시하는 애플릿 뷰어 서비스, 클라이언트의 브라우저로부터 동작될 수 있는 웹 어플리케이션으로서 서브릿(servlet) 인터페이스에 따라 구현된 JavaTM 클래스를 동작시키는 HTTP(HyperText Transfer Protocol) 서비스 등을 포함한다. 특히, 애플릿 인터페이스에 따라 구현된 JavaTM 어플리케이션은 AWT(Abstract Windowing Toolkit)의 API 등을 통해 조작 패널 드라이버(214)와 간접적으로 인터페이스할 수 있다.
참조번호(218)는 제어 API(204)에 의존하는 잡 제어 라이브러리를 나타낸다. 잡 제어 라이브러리(218)는 해석기 환경(215)에서 동작하는 프로그램을 위해, 화상 처리 잡의 실행 및 제어를 가능하게 하는 응용 프로그래밍 인터페이스를 제공한다.
참조번호(219)는 인쇄 어플리케이션(202)과 통신함으로써, 인쇄 데이터 스트림에 대한 인쇄 잡 요구를 실행하는 경우에 해석기 환경(215)에서 구현된 필터 프로그램으로부터의 개입을 가능하게 하는 필터 프레임워크를 나타낸다.
참조번호(220)는 해석기(216)에 의해 해석될 수 있는 해석기 언어에 의해 기술된 소프트웨어로서 구현되는 해석기 코드부를 나타낸다. 또한, 해석기 코드부(220)는 해석기 환경(215)을 구성하는 API 라이브러리 그룹 및 프레임워크 그룹의 일부와, 해석기 환경(215)에서 동작하는 프로그램을 포함한다. 또한, 고유 코드부(201)와 해석기 코드부(220)에 걸쳐 위치한 소프트웨어와 관련하여, 해석기 환경(215)에 의해 규정되는 고유 프레임워크 및 프로그래밍 모델에 따라 각각의 공간들 사이를 인터페이스하는 모듈의 코딩을 실행할 필요가 있다. 본 실시예에서는, JNI(JavaTM Native Interface)에 따라 이들 공간의 경계에 대한 프로그래밍이 실행된다.
참조번호(221)은 해석기 환경(215) 상에 구현된 프로그램인 필터를 나타낸다. 필터(221)는 필터 프레임워크(219)의 프레임에 따라 구현되기 때문에, 인쇄 어플리케이션(202)에 의해 처리될 인쇄 데이터 스트림에 대한 처리를 실행할 수 있다. 참조번호(222)는 다양한 어플리케이션들 및 웹 어플리케이션들을 나타낸다.
도 3은 도 2에 도시된 화상 처리 장치 내의 소프트웨어 모듈들 간의 데이터 흐름을 도시한 도면이다.
인쇄 요구 수신 모듈(203)이 클라이언트로부터 수신된 인쇄 잡 데이터 스트림에 대한 필터 처리를 실행하지 않는 경우, 인쇄 잡 데이터 스트림(301)은 인쇄 요구 수신 모듈(203)로부터 잡 제어 모듈(205)로 흐르게 된다. 여기서, 예를 들어, 인쇄 잡 데이터 스트림(301)은 RTOS(209)에 의해 제공되는 메시지 큐 등과 같은 태스크간 통신의 기능에 의해 송신된다.
잡 제어 모듈(205)은 인쇄 잡 데이터 스트림(301)을 순차 해석하고, 인쇄 잡 데이터 스트림(301) 내의 잡 기술을 더 해석한다. 그 후, 해석에 따라, 잡 제어 모듈(205)은 제어 경로(302)를 통해 번역기(206), 렌더러(207) 및 ME 제어 모듈(208)을 제어한다.
한편, 인쇄 잡 데이터 스트림(301) 내의 인쇄 데이터는 일반적으로 PDL에 의해 기술되는 커맨드 시퀀스(303)이고, 커맨드 시퀀스(303)는 번역기(206)로 흐르게 된다. 그 후, 번역기(206)는 인쇄 데이터를 해석하고, 표시 목록(304)을 생성한다. 그 후, 생성된 표시 목록(304)은 렌더러(207)로 흐르게 된다. 다음, 렌더러(207)는 표시 목록(304)을 전개하고, 래스터 화상 데이터(305)를 생성한다. 여기서, 래스터 화상 데이터(305)는 페이지 단위로 생성되거나, 또는 서브 스캔 방향으로 페이지를 복수의 영역으로 분할함으로써 얻어진 대역 단위로 생성될 수 있다. 어떤 경우든, 생성된 래스터 화상 데이터(305)는 ME 제어 모듈(208)로 흐르게 된다. ME 제어 모듈(208)은 래스터 화상 데이터(305)를 마킹 엔진(16)에 전송하고, 마킹 엔진(16)은 이에 따라 전사지 상으로 화상 형성을 실행한다.
상기 처리들은 모두 고유 코드부(201)에 구현되는 소프트웨어에 의해 달성된다.
한편, 인쇄 잡 데이터 스트림에 대해 필터 처리를 실행하는 경우, 인쇄 요구 수신 모듈(203)에 의해 클라이언트로부터 수신된 인쇄 잡 데이터 스트림(306)은 필터 프레임워크(219)로 흐르게 된다. 여기서, 예를 들어, 인쇄 잡 데이터 스트림(306)은 RTOS(209)에 의해 제공된 메시지 큐 등과 같은 태스크간 통신 기능에 의해 전송된다.
필터 프레임워크(219)의 런타임 모듈은 해석기 환경(215) 상에서 구현된 필터 프로그램 그룹을 관리한다. 필터 프레임워크(215)는 수신된 인쇄 잡 데이터 스트림(306)을 인쇄 잡 데이터 스트림(307)으로서 필터(221)에 흐르게 한다. 여기서, 예를 들어, 인쇄 잡 데이터 스트림(307)은 해석기 환경(215)에 의해 제공된 스레드간 통신 기능에 의해 보내진다. 또한, 복수의 필터가 배열 또는 배치되어 있는 경우, 인쇄 잡 데이터 스트림은 각각의 필터들 사이에서 흐르게 되고, 이들 인쇄 잡 데이터 스트림은 해석기 환경(215)에 의해 제공된 스레드간 통신 기능에 의해 송신된다.
필터(221)는 수신된 인쇄 잡 데이터 스트림(307)에 대해 소정의 처리를 실행한 후, 데이터 스트림(308)을 출력한다. 필터(221)에 의해 출력된 데이터 스트림(308)은 필터 프레임워크(219)로 흐르게 된다. 예를 들어, 데이터 스트림(308)은 해석기 환경(215)에 의해 제공되는 스레드간 통신 기능에 의해 보내진다.
필터 프레임워크(219)는 필터(221)로부터 수신된 데이터 스트림(308)을 데이터 스트림(309)으로서 잡 제어 모듈(205)에 흐르게 한다. 여기서, 예를 들어, 데이터 스트림(309)은 RTOS(209)에 의해 제공되는 메시지 큐 등과 같은 태스크간 통신 기능에 의해 보내진다. 그 후, 데이터는 필터(221)를 사용하지 않는 경우와 마찬가지로 흐른다.
참조번호(310)는 필터 프레임워크(219)로부터 인쇄 요구 수신 모듈(203)로 의 제어 경로를 나타낸다. 제어 경로(310)는 필터 프레임워크(219)로부터, 인쇄 요구 수신 모듈(203)로부터 잡 제어 모듈(205)로 인쇄 잡 데이터 스트림(301)의 송신을 제어하는 데 사용된다. 즉, 필터 프레임워크(219)에 의해 관리되는 필터(221)가 유효 상태로 배치되어 있는 경우에는 인쇄 잡 데이터 스트림(306)이 유효하고, 이에 따라 필터(221)에 의한 전-처리가 인쇄 잡 데이터 스트림(306)에 대해 실행된다. 한편, 필터 프레임워크(219)에 의해 관리되는 필터(221)가 유효 상태로 배치되지 않는 경우에는 인쇄 잡 데이터 스트림(301)이 유효하고, 이에 따라 클라이언트로부터 수신된 인쇄 잡 데이터 스트림은 잡 제어 모듈(205)로 직접 흐르게 된다. 이 경우, 필터 프레임워크(219)에 의해 개재된 오버헤드를 제거하는 것이 가능하기 때문에, 필터(221)에 의한 임의의 커스터마이즈화가 전혀 적용되지 않는 표준 상태로 프린터의 데이터 처리 성능을 발휘할 수 있다.
도 4는 해석기 환경(215)에 구축된 필터 프레임워크(219)의 클래스를 도시한 도면이다.
도 4에서, FilterManager 클래스(401)는 필터 프레임워크(219)의 런타임 환 경을 달성하는 오브젝트의 클래스이다. FilterManager 클래스(401)는 하나의 Connector 클래스(405)를 구성요소(composition)로서 갖는다. 또한, FilterManager 클래스(401)는 복수 (n) Filter 추상 클래스(402)의 오브젝트에 대한 참조 및 복수 (n-1) Pipe 클래스(406)의 오브젝트에 대한 참조로 이루어지는 순서가 부여된 목록을 갖는다. 또한, FilterManager 클래스(401)는 필터 프레임워크(219)의 런타임 시에 인스톨된 복수의 Filter 추상 클래스(402)의 구체 클래스를 관리하기 위한 인스톨된 Filter 속성을 포함한다.
Filter 추상 클래스(402)는 다양한 필터 클래스를 추상화하기 위한 추상 클래스이고, Filter 추상 클래스(402)는 필터 명칭을 나타내는 명칭 속성 등을 갖는다. 또한, Filter 추상 클래스(402)는 입력 속성으로서 InputStream 추상 클래스(403)에 계승되는 클래스의 오브젝트에 대한 참조, 및 출력 속성으로서 OutputStream 추상 클래스(404)에 계승되는 클래스의 오브젝트에 대한 참조를 갖는다. Filter 추상 클래스(402)의 구체 클래스에는 Runnable 인터페이스가 구현되고, Filter 추상 클래스(402)는 런 메소드(run method)를 갖는다. FilterManager 오브젝트가, 관리되는 각종 필터 클래스의 인스턴스를 생성하고 데이터 스트림의 필터 처리를 위해 준비될 때, FilterManager 오브젝트는 준비된 각 필터 오브젝트들에 대응하는 스레드들을 생성하고, 병행 동작하는 스레드들의 실행 컨텍스트에서 필터 오브젝트들의 런 메소드를 실행한다. 즉, 필터 오브젝트가 컨스트럭터(constructor)의 파라미터에 보내지고, "java.lang.Thread" 오브젝트가 생성되고 개시된다. 이에 따라, 각각의 필터 오브젝트는 자율적으로 동작한다.
InputStream 추상 클래스(403)는 데이터 스트림의 입력원의 추상 클래스이고, 각각의 호출에 관련하여 데이터를 순차적으로 판독할 수 있는 판독 메소드를 갖는다.
OutputStream 추상 클래스(404)는 데이터 스트림의 출력처의 추상 클래스이고, 각각의 호출에 관련하여 데이터를 순차적으로 기입할 수 있는 기입 메소드를 갖는다.
Connector 클래스(405)는 해석기 환경(215)의 고유 코드와 오브젝트 사이에서 데이터 스트림을 교환하기 위한 접촉점을 나타내는 오브젝트의 클래스이다. 또한, Connector 클래스(405)는, InputStream 추상 클래스(403)에 계승되는 ConnectorInputStream 클래스의 오브젝트를 구성요소서 가지며, 그 판독 메소드에 의해 고유 코드의 인쇄 요구 수신 모듈(203)로부터 흘러나온 데이터 스트림(306)을 순차 판독할 수 있다. 또한, Connector 클래스(405)는, OutputStream 추상 클래스(404)에 계승되는 ConnectorOutputStream 클래스의 오브젝트를 구성으로서 가지며, 그 기입 메소드에 의해 순차 기입된 데이터 스트림은 고유 코드의 잡 제어 모듈(205)로 데이터 스트림(309)으로서 흐르게 된다.
Pipe 클래스(406)는 복수의 필터링 처리가 데이터 스트림에 실행될 때 Filter 추상 클래스(402)의 일련의 오브젝트들을 링크하는 데 사용될 오브젝트의 클래스이다. Pipe 클래스(406)는, OutputStream 추상 클래스(404)에 계승되는 PipedOutputStream 클래스의 오브젝트 및 InputStream 추상 클래스(403)에 계승되는 PipedInputStream 클래스의 오브젝트를 구성요소로서 갖는다. 여기서, Pipe 오 브젝트의 PipedOutputStream 오브젝트 및 PipedInputStream 오브젝트는 상호 접속됨으로써, 스레드간 통신을 달성한다. 즉, 하나의 Pipe 오브젝트와 관련하여, 기입 메소드를 통해 한 필터 오브젝트에 의해 관련 Pipe 오브젝트의 PipedOutputStream 오브젝트 내로 순차 기입된 데이터 스트림은 판독 메소드를 통해 다른 필터 오브젝트에 의해 관련 Pipe 오브젝트의 PipedInputStream 오브젝트로부터 순차 판독될 수 있다.
도 5a 및 도 5b는 해석기 환경(215)상에 구축되는 필터 프레임워크(219)에 의해 관리되는 오브젝트의 인스턴스들을 도시한 도면이다.
더 구체적으로, 도 5a는 하나의 필터가 유효한 상태에서 필터 프레임워크(219)의 런타임에 의해 관리되는 오브젝트들 사이의 관계를 도시한 도면이다.
도 5a에서, Connector 오브젝트(501)는 Connector 클래스(405)의 오브젝트이다.
필터 오브젝트(502)는 Filter 추상 클래스(402)를 추상화함으로써 얻어진 추상 클래스의 오브젝트이다. 또한, Connector 오브젝트(501)의 ConnectorInputStream 오브젝트의 참조는 필터 오브젝트(502)의 입력 속성 내에 유지되고, Connector 오브젝트(501)의 ConnectorOutputStream 오브젝트의 속성은 필터 오브젝트(502)의 출력 속성 내에 유지된다. 필터 오브젝트(502)는 신호 "입력"이 나타내는 ConnectorInputStream 오브젝트로부터 판독된 데이터 스트림에 필터 처리를 실행하고, 신호 "출력"으로 표시된 ConnectorOutputStream 오브젝트 내에 필터-처리된 데이터 스트림을 기입한다.
전술한 방식에 의해, 오브젝트들 사이의 인쇄 데이터 스트림의 송신(도 5a의 두꺼운 화살표)이 달성된다.
또한, 도 5b는 두개의 필터가 유효한 상태에서 필터 프레임워크(219)의 런타임에 의해 관리되는 오브젝트들 사이의 관계를 도시한 도면이다.
필터 1 오브젝트(503)는 Filter 추상 클래스(402)를 추상화함으로써 얻어지는 추상 클래스의 오브젝트이다. 또한, Connector 오브젝트(501)의 ConnectorInputStream 오브젝트의 참조는 필터 1 오브젝트(503)의 입력 속성 내에 유지되고, 필터 1 오브젝트(503)는 신호 "입력"이 나타내는 ConnectorInputStream 오브젝트로부터 판독된 데이터 스트림에 필터 처리를 실행한다. 한편, Pipe 오브젝트(504)의 PipedOutputStream 오브젝트의 참조는 필터 1 오브젝트(503)의 출력 속성 내에 유지되고, 신호 "출력"이 나타내는 PipedOutputStream 오브젝트 내에 필터-처리된 데이터 스트림을 기입한다.
Pipe 오브젝트(504)는 Pipe 클래스(406)의 오브젝트이고, PipedOutputStream 오브젝트 및 PipedInputStream 오브젝트를 이들 오브젝트가 접속되어 있는 상태로 유지한다. 따라서, Pipe 오브젝트(504)의 PipedOutputStream 오브젝트의 기입 메소드의 호출에 의해 보내진 데이터 스트림은 Pipe 오브젝트(504)의 PipedInputStream 오브젝트의 판독 메소드의 호출에 의해 데이터 스트림으로서 판독될 수 있다.
필터 2 오브젝트(505)는 Filter 추상 클래스(402)를 추상화함으로써 얻어지는 추상 클래스의 오브젝트이다. 또한, Pipe 오브젝트(504)의 PipedInputStream의 참조는 필터 2 오브젝트(505)의 입력 속성 내에 유지되고, 필터 2 오브젝트(505)는 신호 "입력"이 나타내는 Pipe 오브젝트(504)로부터 판독된 데이터 스트림에 필터 처리를 실행한다. 한편, Connector 오브젝트(501)의 ConnectorOutputStream의 참조는 필터 2 오브젝트(505)의 출력 속성 내에 유지되고, 신호 "출력"으로 표시된 Connector 오브젝트(501)의 ConnectorOutputStream 내에 필터-처리된 데이터 스트림을 기입한다.
전술한 방식에 의해, 오브젝트들 사이의 인쇄 데이터 스트림의 송신(도 5b의 두꺼운 화살표)이 달성된다. 마찬가지로, 관련 필터 오브젝트들 사이에 Pipe 오브젝트를 끼워넣음에 따라 데이터 스트림 처리를 위해 더 많은 필터 오브젝트를 준비하는 것이 가능하다.
도 6a 및 도 6b는 필터 프레임워크(219)를 동작시키는 데 사용되는 사용자 인터페이스의 예를 도시한 도면이다.
필터 프레임워크(219)를 동작시키는 데 사용되는 사용자 인터페이스는 프레임워크(217) 내에 포함되는 표준 라이브러리 및 HTTP 서비스에 의해 웹 어플리케이션(서브릿(servlet))으로서 구현되고, 클라이언트측 상의 웹 브라우저로부터 동작된다. 또한, 애플릿 서비스로서 구현되고 화상 처리 장치의 조작 패널로부터 동작되도록 사용자 인터페이스를 구성할 수도 있다.
도 6a는 화상 처리 장치의 필터 프레임워크(219)에 새로운 필터를 추가로 인스톨하는 데 사용되는 사용자 인터페이스를 도시한 것이다.
도 6a에서, 참조번호(601)는 필터 인스톨 화면의 일례를 나타낸다.
참조번호(602)는 파일명 입력 필드를 나타낸다. 더 구체적으로, 파일명 입력 필드(602)에서, 사용자는 클라이언트 컴퓨터의 파일 시스템 내에 미리 저장되고 인스톨될 예정인 필터 클래스의 클래스 파일의 파일 경로를 입력한다.
참조번호(603)는 참조 버튼을 나타낸다. 참조 버튼(603)이 사용자에 의해 클릭되면, 클라이언트 컴퓨터의 웹 브라우저에 의해 제공된 파일 선택 다이얼로그가 열린다. 이에 따라, 사용자는 클라이언트 컴퓨터의 파일 시스템 내를 브라우징할 수 있으므로, 인스톨될 예정인 필터 클래스의 클래스 파일을 선택할 수 있다. 그 후, 파일 선택 다이얼로그를 통해 사용자에 의해 선택된 파일의 파일 경로는 파일명 입력 필드(602)에 자동으로 입력된다.
참조번호(604)는 인스톨 버튼을 나타낸다. 사용자가 인스톨 버튼(604)을 클릭하면, 파일명 입력 필드(602)에 입력된 파일 경로의 클래스 파일은 클라이언트 컴퓨터의 웹 브라우저를 통해 새로운 필터 인스톨을 위해 웹 어플리케이션으로 전송된다. 클래스 파일을 수신한 웹 어플리케이션은 화상 처리 장치의 비휘발성 메모리(플래시 ROM(3) 또는 외부 메모리(10)) 내에 수신한 클래스 파일을 저장한다. 또한, 클래스 파일은 오브젝트 인스턴스를 생성하기 위해 해석기 환경(215)에 동적으로 로딩되고, 생성된 필터 오브젝트는 필터 프레임워크(219)의 런타임에 의해 관리되는 유효 필터열의 목록의 최하류측에 배치된다. 여기서, 유효 필터 오브젝트가 이미 필터열 내에 존재하면, 새로운 Pipe 오브젝트는 새로운 필터 오브젝트를 링크하기 위해 생성된다.
상기 사용자 인터페이스가 웹 어플리케이션으로서 구현된 경우, 필터 구현 클래스를 화상 처리 장치로 업로드하는 메카니즘은 RFC(Request For Comment)에 의해 결정되는 HTML(HyperText Markup Language) 형식에 기초한 파일 업로드의 사양을 사용함으로써 구현을 실행한다. 따라서, 이 경우, 파일명 입력 필드(602) 및 참조 버튼(603)은 클라이언트 컴퓨터의 웹 브라우저에 의해 표시되고, 인스톨 버튼(604)은 그 형식의 "서브미트(submit)"에 대응한다.
또한, 상기 사용자 인터페이스가 애플릿 서비스로서 구현되는 경우, 필터 인스톨 화면(601)은 화상 처리 장치의 조작 패널(18)의 표시부 상에 표시된다. 여기서, 파일명 입력 필드(602) 내에 지정될 파일로서, 분리가능한 저장 매체 내의 파일 경로는 화상 처리 장치에 분리가능한 저장 장치가 구비될 때 이용가능하다. 그렇지 않은 경우에는, 화상 처리 장치로부터 네트워크를 통해 HTTP, FTP(file transfer protocol) 등과 같은 파일 전송 프로토콜에 의해 판독가능하고 액세스가능한 공유 파일은 URL(Uniform Resource Locator) 등을 사용함으로써 지정될 수 있다.
도 6b는 화상 처리 장치의 필터 프레임워크(219) 내에 인스톨된 필터를 배치하는 데 사용되는 사용자 인터페이스를 도시한 것이다.
도 6b에서, 참조번호(605)는 필터 배치 화면의 일례를 나타낸다.
참조번호(606)는 필터 프레임워크(219)의 런타임시에 인스톨된 필터 그룹을 열거한 표를 나타낸다. 표(606)에서, 각 행은 인스톨된 필터들의 각각에 대응하고, "선택" 열은 체크 박스를 포함하며, 이에 의해 체크된 행에 대응하는 필터는 후술된 동작의 타겟으로서 선택된다. 또한, 표(606)의 "순서" 열에서, 메시지 "비 활성"은 필터가 비활성 상태에 있는 경우에 표시된다. 한편, 필터가 활성 상태에 있는 경우, 상류에서 하류로 오름차순으로 숫자(즉, 데이터 스트림 처리의 순서)가 표시된다. 또한, 표(606)의 "명칭" 열에서, 필터 오브젝트의 명칭 속성에 기술되는 각 필터들의 명칭들이 표시된다.
참조번호(607 내지 611)는 선택된 필터에 대한 동작을 나타내는 데 사용되는 각 버튼을 나타낸다. 더 구체적으로, 이들 버튼들은 표(606)의 "선택" 열 내의 체크 박스가 체크되는 행에서 기술되는 필터에 대한 동작을 나타내는 데 사용된다.
즉, 사용자가 "상세 표시" 버튼(607)을 클릭하면, 선택된 필터에 관한 상세 정보가 표시된다. 여기서, 상세 정보는 선택된 필터의 명칭 및 버전, 그것의 설명, 클래스 명칭, 인스톨 소스(파일 경로 또는 URL)의 클래스 파일명, 인스톨된 날짜와 시간 등을 포함한다.
사용자가 "상향" 버튼(608)을 클릭하면, 필터열 내의 선택된 필터의 순서는 데이터 스트림 처리의 상류 방향으로 한 단계씩 변경된다.
사용자가 "하향" 버튼(609)을 클릭하면, 필터열 내의 선택된 필터의 순서는 데이터 스트림 처리의 하류 방향으로 한 단계씩 변경된다.
사용자가 "활성/비활성" 토글(toggle) 버튼(610)을 클릭하면, 선택된 필터의 활성 상태는 비활성 상태로 변경되고, 다르게는, 선택된 필터의 비활성 상태가 활성 상태로 변경된다. 비활성 필터 오브젝트는 삭제된다. 그러나, 필터 클래스는 인스톨된 상태로 남아있고, 남은 필터 클래스는 필터 프레임워크(219)의 런타임에 의해 관리된다.
또한, 사용자가 "언인스톨" 버튼(611)을 클릭하면, 선택된 필터의 클래스 파일은 화상 처리 장치의 해석기 환경(215)으로부터 삭제된다.
도 7은 필터 처리의 주요 절차를 도시한 흐름도이다.
여기서, 도 7에 도시된 절차는 구체 필터 클래스의 런 메소드로서 구현된다는 것을 유념해야 한다. 즉, 필터 프레임워크(219)는 유효 필터 클래스의 오브젝트를 생성하고, 그것의 입력 스트림 및 출력 스트림을 구성한 후, 이 오브젝트의 런 메소드를 실행하는 스레드(Thread 오브젝트)를 할당한다. 이에 의해, 도 7에 도시된 절차는 병렬 처리로서, 필터 프레임워크(219)에 의해 관리되는 각각의 필터 오브젝트 내에서 자율적으로 동작한다.
먼저, 단계 S701에서, 필요한 전-처리가 실행된다. 여기서, 전-처리는 필터에 의해 내부에서 사용될 속성의 초기화, 패턴 매칭시에 사용될 패턴 기술에 대한 전-처리, 입력 스트림 및 출력 스트림을 더 용이하게 사용할 수 있게 하는 기능(예를 들어, 입력 스트림을 예지할 수 있게 하는 기능, 시스템 자원을 효과적으로 이용하기 위해 버퍼링을 확장하는 기능)을 추가하기 위해 자격있는 클래스(java.io.FilterInputStream 또는 java.io.FilterOutputStream의 구체 클래스)에 의해 스트림을 랩핑(wrapping)하는 처리 등을 포함한다.
단계 S702에서, 입력 속성에 설정된 입력 스트림으로부터 패턴 매칭 처리에 필요한 양의 데이터가 판독된다.
단계 S703에서, 필터에 의해 동작될 데이터 패턴의 모양을 입력 데이터 스트림으로부터 발견하기 위해 패턴 매칭이 실행된다. 여기서, 필터가 동작해야 하는 데이터 패턴이 고정된 데이터열 자체이거나, 또는 정규 표현 등과 같은 형식 언어에 의해 기술될 수 있다는 것을 유념해야 한다. 또한, 패턴 기술에 합치하는 데이터 출현을 데이터 스트림에서 발견하기 위한 다양한 구현이 공지되어 있다(특히, "그랩(grep)", "세드(sed)", "오크(AWK)", "펄(Perl)" 등이 유명하다)는 것을 알 수 있을 것이다.
패턴 매칭을 효과적으로 실행하기 위한 알고리즘은 충분히 연구되고 있다. 즉, 고정된 패턴 기술과 관련하여, 패턴 기술 및 부분 데이터 스트림의 각각의 해시 함수들을 서로 비교하고, 비교한 해시 함수의 해시 값이 서로 일치하는 경우 관련 패턴들이 완전히 상호 일치하는 것으로 판정하는 방법이 공지되어 있다. 또한, Knuth-Morris-Pratt 방법, Boyer-Moore 방법 등이 공지되어 있다. 또한, 정규 표현 등에 의한 패턴 기술과 관련하여, 유한 자동화 등과 같은 형식 언어 이론을 배경으로 하는 다양한 알고리즘이 공지되어 있다. 비교적 최근의 JavaTM 플랫폼에서는, 정규 표현을 다루는 클래스 라이브러리가 통상적으로 제공된다(java.util.regex). 예를 들어, 데이터 스트림의 상류의 패턴에 따라 상태가 변화하고, 변화된 상태에 따라 하류의 패턴의 해석이 변화되어야 하는 경우, 정규 표현 등으로 기술되기가 다소 곤란한 복잡한 패턴 매칭이 요구된다. 이 경우, 관련 패턴의 특성 자체를 평가하기 위한 알고리즘이 JavaTM 프로그램으로서 기입될 수 있다. 그렇게 함으로써, 아무리 복잡한 패턴 매칭이라도 충실하게 구현될 수 있다.
단계 S704에서, 패턴 기술에 합치하는 데이터가 데이터 스트림 내에서 발견 되는지의 여부가 판정된다. 관련 데이터가 데이터 스트림 내에서 발견된 것으로 판정되는 경우, 흐름은 단계 S705로 진행된다. 한편, 관련 데이터가 데이터 스트림 내에서 발견되지 않은 것으로 판정되는 경우, 흐름은 단계 S706으로 진행된다.
그 후, 단계 S705에서, 패턴 기술에 합치하는 데이터 스트림 내의 부분 데이터열과 관련하여 관련 필터의 오브젝트에 따른 동작이 실행되고, 획득된(합치된) 데이터가 치환된다.
다음, 단계 S706에서, 처리된 부분 데이터열은 출력 스트림 내로 기입된다. 더 구체적으로, 모니터링된 패턴이 나타나지 않는 데이터열, 또는 모니터링된 패턴을 포함하고 단계 S705에서 처리된 데이터열은 출력 스트림 내로 기입된다.
그 후, 단계 S707에서, 입력 스트림이 종료되었지의 여부가 판정된다. 입력 스트림이 종료된 것으로 판정되는 경우, 처리는 종료된다. 한편, 입력 스트림이 종료되지 않은 것으로 판정되는 경우, 흐름은 단계 S702로 복귀하여, 상기 절차를 반복한다.
도 8은 본 실시예에서의 호환 필터에 의해 실행되는 처리를 설명하는 도면이다.
도 8에서, 참조번호(801)는 입력 스트림을 판독하고, 데이터 스트림 내에 나타나는 호환성 문제를 해결하기 위한 처리를 실행한 다음에, 처리된 데이터 스트림을 출력 스트림 내로 기입하는 호환 필터 클래스 오브젝트(호환 필터)를 나타낸다. 여기서, 호환성 문제로서, 전형적인 PDL의 하나인 Adobe의 Postscript 사양이 구현되는 벤더들의 프린터들 사이에서의 각 벤더에 관련된 해석의 차이에 기초한 문제 가 취급되고, 이에 대한 해결책의 일례가 설명될 것이다.
소정의 벤더의 프린터에 따르면, PostScript의 "setpagedevice"에서는, "/DeferredMediaSelection"이 참이면, 주문(custom) 용지에 대한 용지 요구가 패널 상에 표시된다. 한편, "/DeferredMediaSelection"이 false이면, 지정 용지 크기로부터 ±5의 범위 내에서 정형의(definite) 용지가 검색된다. 정형의 용지가 없으면, PostScript의 Policy에 따르도록 구현이 실행된다. 또한, 다른 벤더의 프린터에 따라, "/DeferredMediaSelection"이 true이면, 지정된 크기 자체(범위 없음)로 정형의 용지가 검색된다. 정형의 용지가 없으면, 용지는 주문 용지로서 취급된다. 한편, "/DeferredMediaSelection"이 false이면, 지정 용지 크기로부터 ±5의 범위 내에서 정형의 용지가 검색된다. 정형의 용지가 없으면, PostScript의 Policy에 따르도록 구현이 실행된다.
여기서, 또 다른 벤더에 의해 공급되는 기본 시스템을 위한 인프라스트럭처 환경이 상기 해석들 중 후자에 기초한 거동을 전제로 하여 구축되는 것으로 가정한다. 이 경우, 이 시스템의 인쇄 요구에 관련된 전자의 프린터에 있어서, 용지는 사용자의 기대에 반하는 상황에서 주문 용지로서 취급됨으로써, 조작 패널 상에는 "용지 없음"이 표시된다. 이에 따라, 인쇄가 불가능하다는 고객의 불이익이 발생한다. 이러한 이유로, 전자의 프린터의 벤더는 가능한 한 신속하고 저렴한 비용으로 고객에게 그와 같은 호환성 문제에 대한 해결책을 제공하도록 요구된다. 인쇄 요구 데이터 스트림에 나타나는 "setpagedevice"의 파라미터 "/DeferredMediaSelection"을 "true"에서 "false"로 변환함으로써 최소한 잠정적으 로 그러한 요구에 대처할 수 있다.
호환 필터(801)는 이러한 문제를 해결하는 데 기여하는 필터 오브젝트이다. 더 구체적으로, 호환 필터(801)는 입력 데이터 스트림으로부터 "/DeferredMediaSelection"의 "true"를 통해 지정되는 "setpagedevice"에 대해 패턴 매칭을 실행한다. 매칭(또는 합치)이 획득되면, "/DeferredMediaSelection"의 "true"는 그것의 "false"로 치환되고, 출력 데이터 스트림이 출력된다.
참조번호(802)는 입력 데이터 스트림의 일례, 즉 PostScript의 인쇄 데이터를 나타낸다. 입력 데이터 스트림(802)의 제2 라인상에, 패턴에 합치하는 부분 데이터가 출현한다.
참조번호(803)는 출력 데이터 스트림의 일례, 즉 PostScript의 필터-처리된 인쇄 데이터를 나타낸다. 출력 데이터 스트림(803)의 제2 라인의 데이터에 있어서, 문자열 "true"는 문자열 "false"로 치환되었다.
도 9는 본 실시예에서 수정 필터에 의해 실행될 처리를 설명하는 도면이다.
상기 호환 필터는 프린터들 사이의 사양 해석들의 차이에 기초한 호환성 문제를 해결하기 위해 패턴 매칭 및 치환 기술을 사용한다. 여기서, 프린터 구현 시의 불편(예를 들어, 펌웨어의 버그)을 신속히 제거하기 위해서도 동일한 기술이 사용될 수 있다는 것을 유념해야 한다. 예를 들어, 소정 프린터의 소정 버전이 배포된 경우에, LIPS(LBP Image Printing System) 언어의 "화상 영역 확보 명령(VDM)"에서 지정되는 화상의 폭이 8의 배수가 아닌 경우에 묘화 불규칙성이 발생하는 버그가 존재하는 것으로 추정된다. 여기서, 그러한 패턴의 데이터 스트림이 특정 어 플리케이션의 특정 사용에서만 드물게 출력되거나, 또는 상기 버그가 번역기 또는 렌더러 등의 LIPS 언어 처리 시스템의 핵심 부분에서 본질적으로 수정되어야 하는 경우라도, 실제 고객의 환경에서 가능한 한 빨리 그러한 불편에 대처할 필요가 있다. 이러한 문제는 수정 필터에 의해 해결된다.
도 9에서, 참조번호(901)는, 예를 들어 참조번호(902)로 표시된 데이터를 포함하는 LIPS 데이터 스트림으로부터 버그를 야기시키는 패턴을 발견하고(즉, VDM의 화상 폭이 8의 배수가 아닌 "225"임), 이 데이터(902)를, 버그를 야기시키지 않고 동등한 기능을 달성하는 참조번호(903)에 의해 나타나는 데이터로 교체하는(즉, VDM의 화상 폭은, 8의 배수이며 "225"보다 큰 "232"로 치환됨) 수정 필터를 나타낸다.
전술한 바와 같이, 제1 실시예에 따르면, 펌웨어로서 정적으로 구현되는 인쇄 요구 수신 서버에 의해 수신된 데이터 스트림을, 내장 JavaTM 환경에서 구현되어 동적으로 로딩되고 동적으로 링크될 수 있는 필터 소프트웨어로 송신하기 위한 인터페이스가 제공됨으로써, 안정된 부분과 동적인 부분을 상호 명백하게 분리할 수 있다. 이러한 이유로, 전체 장치 펌웨어가 동적이고 용장인 소프트웨어로 치환되는 비효율성을 없앨 수 있다. 또한, 인쇄 요구 수신 서버 기능이 재구현되어 JavaTM 환경측에서 이중으로 되는 비효율성을 제거할 수 있다. 따라서, 장치 비용 및 개발 부담에 합리적인 필터 프레임워크를 달성할 수 있다. 또한, 고객의 환경에서 이미 전달되고 공급된 화상 처리 장치에 관한 필터의 동적 추가 및 치환을 용 이하게 달성할 수 있기 때문에, 저렴한 유지 비용으로 고객에게 가능한 한 빨리 해결책을 제공할 수 있다.
또한, 제1 실시예에 따르면, 필터가 내장 시스템의 펌웨어 개발 환경에 비해 정교한 JavaTM 환경상에서 구현되기 때문에, 내장 시스템에서 일반적으로 곤란한 동적 메모리 관리가 효과를 발휘하는 고레벨 패턴 매칭 알고리즘을 용이하게 구현할 수 있다. 또한, 시스템이 고도로 모듈화되고 재사용가능성이 높은 소프트웨어로서 설계되기 때문에 오브젝트 지향 패러다임에 기초한 설계 패턴을 용이하게 채택할 수 있다. 따라서, 필터 또는 필터 섹션은 높은 생산성으로 구현될 수 있다.
또한, 필터에 있어서, 다른 구현에 관련하여 호환성 문제를 야기하는 PDL 데이터가 패턴 매칭을 통해 입력 데이터 스트림에서 발견되고, 발견된 데이터는 치환된다. 따라서, 가능한 한 신속하고 저렴한 비용으로 호환성 문제를 해결할 수 있다. 특히, 이러한 효과는 고객의 환경상에서의 시스템, 어플리케이션 및 프린터 드라이버에 영향을 미치지 않고 프린터측에 닫힌 측정에 의해서만 달성될 수 있다.
또한, 필터가 배치되지 않은 경우에는, 인쇄 요구 수신 모듈에 의해 수신된 데이터 스트림이 잡 제어 모듈로 직접 흐르게 되도록 구성된다. 따라서, 필터가 불필요한 경우, 필터 프레임워크에 관련된 오버헤드를 제거할 수 있어, 프린터 본래의 데이터 처리 성능을 유지할 수 있다.
(제2 실시예)
다음, 본 발명의 제2 실시예를 설명한다.
여기서, 제2 실시예의 구성은 기본적으로 제1 실시예의 구성과 동일하다는 것을 유념해야 한다. 따라서, 제2 실시예의 구성에 있어서, 제1 실시예의 구성과 동일한 부분은 각각 동일한 참조 번호로 표시되고, 동일한 부분에 대한 설명은 생략될 것이다. 즉, 제2 실시예에서는, 오직 제1 실시예와 상이한 부분만이 설명될 것이다.
도 10은 제2 실시예에서의 필터에 의해 실행될 처리를 설명하는 도면이다.
도 10에서, 참조번호(1001)는, 입력 스트림을 판독하고, 데이터 스트림에 나타나는 용장하게 기술된 PDL 데이터를 발견하고, 그 발견된 데이터를 보다 효율적인 동일-기능 데이터로 변환하고, 그 변환된 데이터를 출력 스트림 내로 기입하는 최적화 필터 클래스 오브젝트를 나타낸다. 프린터 드라이버에 의해 생성된 PDL 데이터 스트림은, 어플리케이션측 상의 이유 및 클라이언트의 인쇄 요구 시스템에 따라, 본질적으로 반복 등과 같은 용장 처리 패턴을 포함하려는 경향이 있다. 최적화 필터 클래스 오브젝트(1001)는 상기 용장 패턴을 일종의 "관용 표현"으로 인식하고, 이 패턴을 보다 효율적인 등가의 표현으로 치환한다.
참조번호(1002)는 최적화 필터 클래스 오브젝트(1001)로의 입력 데이터 스트림의 일례를 나타낸다. 입력 데이터 스트림(1002)에 있어서, 블록(1003)에 도시된 바와 같이, 가로방향 직사각형을 채우도록(또는 페인팅하도록) 3개의 정사각형의 채우기(또는 페인팅)를 반복하기 위한 기술이 실행된다.
참조번호(1004)는 최적화 필터 클래스 오브젝트(1001)로부터의 출력 데이터 스트림의 일례를 나타낸다. 최적화 필터 클래스 오브젝트(1001)는 반복 패턴을 검출하고, 검출된 패턴을 블록(1005)에 도시된 바와 같이 하나의 동등한 가로방향 직사각형에 재기입한다.
전술한 바와 같이, 제2 실시예에 따르면, JavaTM 환경에서 유연하게 확장가능한 필터에 있어서, 용장인 기술 패턴은 일종의 "관용 표현"으로서 인식되고, 이 패턴은 보다 효율적인 등가의 표현으로 치환된다. 따라서, PDL 처리 시스템의 코어(core)를 전혀 접촉하지 않고 인쇄 성능을 개선할 수 있다. 또한, 제2 실시예에 따르면, 최적화 처리는 프린터측에 닫힌 상태에서 실행되어, 고객의 환경에서의 시스템, 어플리케이션 및 프린터 드라이버를 변경하거나 변환시킬 필요가 없다. 또한, 필터 생산성이 높고, 구현과 같은 필터 유지보수가 용이하다. 따라서, 고객의 사용 유형에 따라 고객에 개별적으로 대응하는 최적화가 제공될 수 있는 가능성이 있다.
(제3 실시예)
다음, 본 발명의 제3 실시예를 설명한다.
여기서, 제3 실시예의 구성은 기본적으로 제1 실시예의 구성과 동일하다는 것을 유념해야 한다. 따라서, 제3 실시예의 구성에 있어서, 제1 실시예의 구성과 동일한 부분은 각각의 동일한 참조 번호로 표시되고, 그 동일한 부분의 기술은 생략될 것이다. 즉, 제3 실시예에서는, 제1 실시예와 상이한 부분만이 설명될 것이다.
도 11은 제3 실시예에서 필터에 의해 실행될 처리를 설명하는 도면이다.
도 11에서, 참조번호(1101)는, 입력 스트림을 판독하고, 그 판독 데이터에 따라 새로운 기능을 추가하기 위해 데이터 변환, 데이터 추가 등과 같은 처리를 실행한 후, 그 처리된 데이터를 출력 스트림 내로 기입하는 기능 확장 필터 클래스 오브젝트를 나타낸다. 여기서, 기능 확장의 일례로서, 고객의 시스템이 전용 PDL 드라이버를 포함하고, 이 PDL 드라이버가 새로운 프린터의 양면 인쇄, 다양한 마무리 등과 같은 새로운 성능들에 대응하지 않는 경우에, 전용 PDL 드라이버를 변경하지 않고 프린터측의 대응관계를 필터링함으로써 화상 처리 장치의 새로운 기능이 활성화되는 것이 설명될 것이다.
기능 확장 필터(1101)는 상기 필터가 동작하는 프린터의 신규한 성능을 활성화하기 위한 인쇄 잡 설정을 그 속성으로서 갖는다. 필터 오브젝트의 속성값은 화상 처리 장치의 비휘발성 메모리 내에도 저장됨으로써, 오브젝트의 상태는 화상 처리 장치의 전원 공급이 일단 턴오프된 후 다시 턴온되는 경우라도 유지된다.
여기서, 잡 종류 속성은 "인쇄", "안전(secure) 인쇄" 등과 같은 값들을 갖는다. 즉, 잡 종류 속성은 프린터 내에 포함된 다양한 작업들 각각의 유형을 나타낸다. 복사 부수(number-of-copy) 속성은 인쇄물들의 복사물이 얼마나 많은 세트가 생성되어야 하는지를 나타낸다. 페이지 레이아웃 속성은 페이지 레이아웃 지정을 나타낸다. 즉, "1 페이지/매(page/copy)", "2 페이지/매", "4 페이지/매" 등과 같이 하나의 용지(매)에 복수의 페이지를 첨면하는 지정은 이 속성에 의해 나타낼 수 있다. 또한, 한 페이지를 확대한 후 확대된 페이지를 "포스터(2×2)", "포스터(3×3)" 등과 같은 복수의 용지 상에 분할하여 인쇄하는 지정은 이 속성에 의해 나타낼 수 있다. 배치 순서 속성은 "상부 좌측에서 우측으로", "상부 좌측에서 아래로", "상부 우측에서 좌측으로", "상부 우측에서 아래로" 등과 같은 값들을 갖는다. 즉, 배치 순서 속성은 페이지 레이아웃 처리에서 각각의 면 상에서의 배치의 지정을 나타낸다. 인쇄 방법 속성은 "단면 인쇄", "양면 인쇄", "제본 인쇄" 등과 같은 값들을 갖는다. 즉, 인쇄 방법 속성은 인쇄 방법의 지정을 나타낸다. 제본 방향 속성은 "장변 제본(좌측)", "장변 제본(우측)", "단변 제본(상부측)", "단변 제본(하부측)" 등과 같은 값들을 갖는다. 즉, 제본 방향 속성은 복수의 용지가 마무리 처리에서 제본되는 방향을 나타낸다. 배지 방법 속성은 "지정 없음", "소트(sort)", "스테이플(staple)", "펀치 홀(punch hole)" 등과 같은 값을 갖는다. 즉, 배지 방법 속성은 마무리 방법을 나타낸다. 용지 공급 속성은 "자동", "수동 트레이", "카세트", "데크(deck)", "보통 용지", "보드(board)", "색지", "OHP" 등과 같은 값을 갖는다. 즉, 급지 속성은 화상 형성이 실행되는 용지(전사지) 공급의 지정을 나타낸다.
참조번호(1102)는 기능 확장 필터(1101)로의 입력 데이터 스트림의 일례를 나타낸다. 더 구체적으로, 입력 데이터 스트림(1102)은 종래의 어플리케이션 및 프린터 드라이버에 의해 생성되는 단순히 각 페이지에 대한 화상 형성 기술 기초하는 텍스트 및 PDL로 구성되는 인쇄 데이터 스트림이다.
참조번호(1103)는 기능 확장 필터(1101)에 의해 순차 처리되어 출력될 출력 데이터 스트림의 일례를 나타낸다. 입력 데이터에 존재하는 단순한 인쇄 데이터 스트림 외에, 프린터의 새로운 기능을 전부 사용하기 위한 다양한 인쇄 잡 기술 데 이터는 출력 데이터 스트림(1103) 내로 삽입된다. 여기서, 인쇄 잡 기술은 내포형 구성을 표현할 수 있기 때문에 잡부(job unit), 복수의 문서를 제본하는 마무리 등의 처리부, 및 개별 문서부의 각 계층들과 관련하여 기능 확장 필터(1101)의 속성과 같은 다양한 속성을 지정할 수 있다는 것을 유념해야 한다.
출력 데이터 스트림(1103)에 있어서, 제1 라인은 잡의 개시를 나타내는 데이터를 표시하고, 제2 라인은 잡 단위의 설정 개시를 나타내는 데이터를 표시하며, 제3 라인은 잡 단위의 다양한 설정 데이터가 이 위치에 존재한다는 것을 표시한다. 또한, 제4 라인은 복수의 문서를 하나로 합친 단위의 개시를 나타내는 데이터를 표시하고, 제5 라인은 복수의 문서를 하나로 합친 단위에 대한 설정 개시를 나타내는 데이터를 표시하며, 제6 라인은 복수의 문서를 하나로 합친 단위에 대한 설정 데이터가 이 위치에 존재한다는 것을 표시한다. 또한, 제7 라인은 문서의 개시를 나타내는 데이터를 표시하고, 제8 라인은 문서 단위의 설정 개시를 나타내는 데이터를 표시하며, 제9 라인은 문서 단위의 설정 데이터가 이 위치에 존재한다는 것을 표시한다. 또한, 제10 라인은 문서 기술 데이터의 개시를 나타내는 데이터를 표시하고, 제11 라인은 문서 자체를 표현하는 문서 기술 데이터가 이 위치에 존재한다는 것을 표시한다. 이 경우, 입력 데이터 스트림(1102) 내에 존재하는 인쇄 데이터 스트림은 이 위치에 존재한다. 또한, 제12 라인은 문서의 종료를 나타내는 데이터를 표시하고, 제13 라인은 복수의 문서를 하나로 합친 단위의 종료를 나타내는 데이터를 표시하며, 제14 라인은 잡의 종료를 나타내는 데이터를 표시한다.
도 12는 기능 확장 필터(1101)를 동작시키는 데 이용되는 사용자 인터페이스 의 일례를 도시한 도면이다.
필터를 동작시키는 데 사용되는 사용자 인터페이스는 프레임워크(217)(도 2) 내에 포함된 HTTP 서비스 및 표준 라이브러리에 의한 웹 어플리케이션(서브릿)으로서 구현되고, 클라이언트측 상의 웹 브라우저로부터 동작된다. 또한, 애플릿 서비스로서 구현되고 화상 처리 장치의 조작 패널(18)로부터 조작되도록 사용자 인터페이스를 구성할 수도 있다.
도 12에서, 참조번호(1201)는 기능 확장 필터(1101)의 기본 조작 화면을 나타낸다. 기본 조작 화면(1201) 상에서, 필터 오브젝트 속성을 확인하고 변경할 수 있다.
위치(1202)에서, 잡 종류 속성이 조작된다.
위치(1203)에서, 복사 매수 속성이 조작된다.
위치(1204)에서, 페이지 레이아웃 속성이 조작된다.
위치(1205)에서, 배치 순서 속성이 조작된다.
위치(1206)에서, 인쇄 방법 속성이 조작된다.
위치(1207)에서, 제본 방향 속성이 조작된다.
위치(1208)에서, 배지 방법 속성이 조작된다.
위치(1209)에서, 급지 속성이 처리된다.
참조번호(1210)는 도움말(help) 버튼을 나타낸다. 도움말 버튼(1210)이 눌러지면, 기능 확장 필터(1101)를 사용하는 방법, 기능의 의미, 속성의 의미 등에 관한 설명이 표시된다.
참조번호(1211)는 표준화(normalize) 버튼을 나타낸다. 표준화 버튼(1211)이 눌러지면, 다양한 속성들은 각각 그들의 디폴트 값으로 복귀한다.
참조번호(1212)는 적용 버튼을 나타낸다. 적용 버튼(1212)이 눌러지면, 속성값 변경 동작이 적용됨으로써, 새로운 값이 실제로 필터 오브젝트의 속성으로 설정된다.
참조번호(1213)는 사용자가 다양한 속성을 확인하는 것을 돕기 위해 몇몇 중요한 속성들 중의 하나의 값에 대응하는 개략도를 표시하는 미리보기 아이콘을 나타낸다.
전술한 바와 같이, 제3 실시예에 따르면, JavaTM 환경에서 유연하게 확장가능한 필터에서, 새로운 기능을 활성화시키기 위해 필요한 데이터가 추가된다. 따라서, 프린터의 새로운 기능에 대응하지 않는 고객의 환경에서의 시스템, 어플리케이션 및 프린터 드라이버와 필터가 결합되는 경우라도, 관련된 새로운 기능을 전부 사용할 수 있다.
또한, JavaTM 환경은 펌웨어 내의 또 한층의 소프트웨어 플랫폼으로서 그 위에서 동작하는 필터를 위해 사용자 인터페이스를 구현하는 수단을 준비한다. 따라서, 추가 기능을 설정하는 사용자 인터페이스는 필터 상에 제공될 수 있다.
또한, 필터 생산성이 높고, 필터 인스톨 등과 같은 유지보수가 용이하다. 따라서, 고객의 이용 유형에 따라 고객에게 개별적으로 대응하는 기능 확장이 제공될 수 있는 가능성이 있다.
(그외 실시예들)
또한, 소정의 문자열 패턴의 모양이 인쇄-타겟 문자 데이터열 내에서 발견되고, 발견된 패턴이 특정 문자열 패턴과 일치하는 경우, 인쇄 데이터 스트림 내에 포함된 제어 데이터 대신에 관련 문자열에 대응하는 제어 데이터를 생성하고, 생성된 제어 데이터를 치환하거나 삽입하는 기능 확장 필터를 구성할 수 있다. 이 경우, 예를 들어, 고객 또는 사용자가 s 워드 프로세서 등과 같은 통상의 어플리케이션에서의 단순한 텍스트로서 특정 문자열을 입력하고, 통상의 프린터 드라이버를 통해 입력 문자열을 인쇄하는 것이 추정된다. 단지 그러한 한 동작에 의해, 프린터측 상의 필터에서, 특정 문자열을, 특정 문자열에 대응하는 화상(예를 들어, 로고, 마크, 워터마크 등)을 묘화하기 위한 벡터 묘화 명령어 등과 같은 명령열로 변환할 수 있다.
또한, 상기 실시예들에서, JavaTM 가상 머신 및 환경은 펌웨어 내부의 해석기 환경(215)으로서 사용된다. 그러나, 본 발명은 이에 한정되지 않는다. 즉, 또 다른 스크립트 언어 등의 해석기 환경이 펌웨어에 내장되는 경우라도, 동적 필터 추가, 펌웨어 부분의 분리 등과 같은 동일한 효과들을 달성할 수 있다. 또한, 해석기는 해석기용 명령 세트로 구성된 명령열을 하나씩 순차적으로 항상 해석하고 실행할 필요가 없다. 즉, 실행시에, 해석기는 명령열의 일부 또는 전부를 고유 명령어의 명령열(즉, 하드웨어 CPU의 명령 세트)으로 동시에 변환하고, 변환된 명령열을 동시에 실행할 수 있다.
또한, 오브젝트 지향 등과 같은 고효율 개발을 달성할 수 있게 하는 다른 많은 해석기 환경이 있고, 따라서 이들 해석기 환경을 사용함으로써, 필터 생산성 등과 같은 동일한 효과들을 달성할 수도 있다. 특히, 또한 "sed(세드)", "AWK(오크)", "Perl(펄)" 등과 같은 옵션은 패턴 매칭에 기초한 데이터 스트림의 처리에 대해 적합하다.
여기서, 본 발명의 목적은 상기 실시예들의 기능을 실현하기 위해 소프트웨어의 프로그램 코드를 내부에 저장하는 저장 매체가 시스템 또는 장치에 공급됨으로써, 그 시스템 또는 장치 내의 컴퓨터(또는 CPU 또는 MPU)가 저장 매체 내에 저장된 프로그램 코드를 판독하고 실행하는 경우라도 달성될 수 있다.
이 경우, 저장 매체에서 판독된 프로그램 코드 자체는 본 실시예의 새로운 기능을 실현함으로써, 관련 프로그램 코드 및 프로그램을 저장하는 저장 매체는 본 발명을 구성한다.
프로그램 코드를 공급하는 저장 매체로서, 예를 들어 플렉시블 디스크, 하드 디스크, 광 디스크, 광자기 디스크, CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, DVD-RW, DVD+RW, 자기 테이프, 비휘발성 메모리 카드, ROM 등이 사용될 수 있다.
또한, 본 발명은 상기 실시예들의 기능이 컴퓨터에 의해 판독된 프로그램 코드를 실행함으로써 실현되는 경우뿐만 아니라, 컴퓨터 상에서 실행되는 OS 등이 프로그램 코드의 지시에 기초하여 실제 처리의 일부 또는 전부를 실행함으로써, 상기 실시예들의 기능이 이들 처리에 의해 실현되는 경우도 포함한다.
또한, 본 발명은 저장 매체에서 판독된 프로그램 코드가 컴퓨터에 삽입된 기 능 확장 카드 또는 컴퓨터에 접속된 기능 확장부 내의 메모리 내로 기입된 후, 기능 확장 카드 또는 기능 확장부 내에 제공된 CPU 등이 프로그램 코드의 지시에 기초하여 실제 처리의 일부 또는 전부를 실행하고, 따라서 상기 실시예들의 기능이 이들 처리에 의해 실현되는 경우도 포함한다.
따라서, 본 발명의 범위는 오로지 다음의 청구범위에 의해서만 결정되고, 명세서의 본문에 의해 제한되지 않으며, 청구 범위와 균등한 범위 내에서 행해지는 변경은 본 발명의 사상 및 범위 내에 속한다.
본 출원은, 2004년 3월 26일자로 출원되었으며 본 명세서에 참조로 포함되는 일본 특허 출원 제2004-093215호의 우선권을 주장한다.
도 1은 본 발명의 제1 실시예에 따른 화상 처리 장치의 하드웨어 구성을 도시한 블록도.
도 2는 도 1에 도시된 화상 처리 장치가 동작하게 하는 소프트웨어(모듈)의 구성을 도시한 계층도.
도 3은 도 2에 도시된 화상 처리 장치 내의 소프트웨어 모듈들 사이의 데이터 흐름을 도시한 도면.
도 4는 해석기 환경상에 구축된 필터 프레임워크의 클래스들을 도시한 도면.
도 5a 및 도 5b는 해석기 환경상에 구축된 필터 프레임워크가 관리하는 오브젝트의 인스턴스들을 도시한 도면.
도 6a 및 도 6b는 필터 프레임워크를 동작시키기 위해 사용되는 사용자 인터페이스의 예들을 도시한 도면.
도 7은 필터 처리의 주요 절차를 도시한 흐름도.
도 8은 제1 실시예에서 호환 필터에 의해 행해지는 처리를 설명하는 도면.
도 9는 제1 실시예에서 수정 필터에 의해 행해지는 처리를 설명하는 도면.
도 10은 제2 실시예에서 필터에 의해 행해지는 처리를 설명하는 도면.
도 11은 제3 실시예에서 필터에 의해 행해지는 처리를 설명하는 도면.
도 12는 기능 확장 필터를 동작시키기 위해 이용되는 사용자 인터페이스의 일례를 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
203: 인쇄 요구 수신 모듈
301: 인쇄 잡 데이터 스트림
302: 제어 경로
303: 커맨드 시퀀스
304: 표시 목록
305: 래스터 화상 데이터

Claims (9)

  1. 화상 처리 장치에 있어서,
    인쇄 데이터 스트림을 외부로부터 수신하도록 구성된 인쇄 데이터 스트림 수신부;
    상기 인쇄 데이터 스트림을 해석하고 화상 형성을 실행하는 인쇄 잡을 제어하도록 구성된 인쇄 잡(job) 컨트롤러;
    상기 인쇄 데이터 스트림에 대해 데이터 처리를 행하여, 처리된 인쇄 데이터 스트림을 상기 인쇄 잡 컨트롤러가 해석가능하게 생성하도록 구성된 필터부;
    상기 인쇄 데이터 스트림 수신부에 의해 수신된 인쇄 데이터 스트림을 상기 필터부로 송신하도록 구성된 제1 인터페이스부; 및
    상기 필터부에 의해 생성된 상기 처리된 인쇄 데이터 스트림을 상기 인쇄 잡 컨트롤러로 송신하도록 구성된 제2 인터페이스부
    를 포함하며,
    상기 필터부는, 사용자의 조작에 기초하여 필터 처리를 실행하기 위한 필터 프로그램을 외부로부터 인스톨/언인스톨함으로써 상기 필터 처리의 컨텐트를 변경할 수 있는 화상 처리 장치.
  2. 제1항에 있어서,
    상기 화상 처리 장치는, 프로세서에 의해 처리되는 고유 명령어에 기초하여 구성되는 펌웨어인 고유 환경을 구비하고,
    상기 고유 환경은, 상기 고유 명령어와는 무관하게 규정되는 명령 세트(instruction set)에 기초하여 구성되는 프로그램을 동적으로 로딩하고, 링크하며, 실행하는 해석기(interpreter) 환경을 포함하며,
    상기 인쇄 데이터 스트림 수신부는 상기 고유 환경상에 배치되고, 상기 필터부는 상기 해석기 환경상에 배치되는 화상 처리 장치.
  3. 제1항에 있어서,
    상기 인쇄 데이터 스트림 수신부에 의해 수신된 인쇄 데이터 스트림을 상기 잡 컨트롤러에 송신하도록 구성된 제3 인터페이스부를 더 포함하는 화상 처리 장치.
  4. 제1항에 있어서,
    상기 필터부는,
    상기 인쇄 데이터 스트림 내의 소정의 데이터 패턴과 일치하는 부분을 검출하도록 구성된 패턴 매칭부; 및
    상기 패턴 매칭부에 의해 검출된 인쇄 데이터 스트림 내의 상기 일치된 부분에 대응하는 소정의 부분 데이터 스트림을 생성하고, 상기 일치된 부분을 상기 생성된 소정의 부분 데이터 스트림으로 치환하도록 구성된 치환부
    를 더 포함하는 화상 처리 장치.
  5. 제2항에 있어서,
    상기 해석기 환경에서 동작하는 프로그램을 사용자가 조작하는 사용자 인터페이스를 상기 해석기 환경 내에 구성하는 사용자 인터페이스 구성부를 더 포함하고,
    상기 필터부 내의 인쇄 데이터 스트림에 대한 데이터 처리의 처리 파라미터는, 상기 사용자 인터페이스 구성부에 의해 구성된 사용자 인터페이스를 사용하여 상기 사용자에 의해 조작되는 화상 처리 장치.
  6. 제2항에 있어서,
    상기 해석기 환경 내에서, 상기 해석기 환경에서 동작하는 프로그램에 대한 명령어의 판독 및 해석을 병렬적으로 실행하도록 구성된 스레드부(thread unit)를 더 포함하고,
    상기 필터부는, 상기 스레드부에 의한 독립적인 실행 컨텍스트 하에서, 상기 인쇄 데이터 스트림에 대한 데이터 처리를 자율적으로 실행하는 화상 처리 장치.
  7. 제2항에 있어서,
    상기 해석기 환경은 JavaTM 플랫폼에 기초하는 화상 처리 장치.
  8. 화상 처리 방법에 있어서,
    인쇄 데이터 스트림을 외부로부터 수신하는 인쇄 데이터 스트림 수신 단계;
    상기 인쇄 데이터 스트림을 해석하고 화상 형성을 실행하는 인쇄 잡을, 인쇄 잡 컨트롤러로 제어하는 인쇄 잡 제어 단계;
    상기 인쇄 데이터 스트림에 대한 데이터 처리를 필터부로 행하여, 상기 인쇄 잡 제어 단계에서 해석될 수 있는 처리된 인쇄 데이터 스트림을 생성하는 필터링 단계;
    상기 인쇄 데이터 스트림 수신 단계에서 수신된 상기 인쇄 데이터 스트림을 상기 필터부로 송신하는 제1 인터페이스 단계; 및
    상기 필터링 단계에서 생성된 상기 처리된 인쇄 데이터 스트림을 상기 인쇄 잡 컨트롤러로 송신하는 제2 인터페이스 단계
    를 포함하며,
    상기 필터링 단계는, 사용자의 조작에 기초하여 필터 처리를 실행하기 위한 필터 프로그램을 외부로부터 인스톨/언인스톨함으로써 상기 필터 처리의 컨텐트를 변경할 수 있는 화상 처리 방법.
  9. 화상 처리 방법을 실행하기 위한 프로그램 코드들을 내부에 저장하는 컴퓨터 판독가능한 기억 매체로서,
    상기 화상 처리 방법은,
    인쇄 데이터 스트림을 외부로부터 수신하는 인쇄 데이터 스트림 수신 단계;
    상기 인쇄 데이터 스트림을 해석하고 화상 형성을 실행하는 인쇄 잡을, 인쇄 잡 컨트롤러로 제어하는 인쇄 잡 제어 단계;
    상기 인쇄 데이터 스트림에 대한 데이터 처리를 필터부로 행하여, 상기 인쇄 잡 제어 단계에서 해석될 수 있는 상기 처리된 인쇄 데이터 스트림을 생성하는 필터링 단계;
    상기 인쇄 데이터 스트림 수신 단계에서 수신된 인쇄 데이터 스트림을 상기 필터부로 송신하는 제1 인터페이스 단계; 및
    상기 필터링 단계에서 생성된 상기 처리된 인쇄 데이터 스트림을 상기 인쇄 잡 컨트롤러로 송신하는 제2 인터페이스 단계
    를 포함하며,
    상기 필터링 단계는, 사용자의 조작에 기초하여 필터 처리를 실행하기 위한 필터 프로그램을 외부로부터 인스톨/언인스톨함으로써 상기 필터 처리의 컨텐트를 변경할 수 있는 컴퓨터 판독가능한 기억 매체.
KR1020087001692A 2004-03-26 2005-03-24 화상 처리 장치, 화상 처리 방법, 및 기억 매체 KR100815728B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00093215 2004-03-26
JP2004093215A JP4164467B2 (ja) 2004-03-26 2004-03-26 画像処理装置、画像処理制御方法、及びプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020067022221A Division KR100852795B1 (ko) 2004-03-26 2005-03-24 화상 처리 장치, 화상 처리 제어 방법, 및 기억 매체

Publications (2)

Publication Number Publication Date
KR20080011469A true KR20080011469A (ko) 2008-02-04
KR100815728B1 KR100815728B1 (ko) 2008-03-20

Family

ID=35056361

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020067022221A KR100852795B1 (ko) 2004-03-26 2005-03-24 화상 처리 장치, 화상 처리 제어 방법, 및 기억 매체
KR1020087001692A KR100815728B1 (ko) 2004-03-26 2005-03-24 화상 처리 장치, 화상 처리 방법, 및 기억 매체

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020067022221A KR100852795B1 (ko) 2004-03-26 2005-03-24 화상 처리 장치, 화상 처리 제어 방법, 및 기억 매체

Country Status (6)

Country Link
US (1) US8373874B2 (ko)
EP (1) EP1735687A4 (ko)
JP (1) JP4164467B2 (ko)
KR (2) KR100852795B1 (ko)
CN (1) CN100533365C (ko)
WO (1) WO2005093560A1 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4738773B2 (ja) * 2004-08-06 2011-08-03 キヤノン株式会社 画像処理装置及びその制御方法
US20070268527A1 (en) * 2005-10-24 2007-11-22 Kyocera Mita Corporation Image forming device
JP2007145002A (ja) * 2005-10-24 2007-06-14 Kyocera Mita Corp 画像形成装置
JP2007164526A (ja) * 2005-12-14 2007-06-28 Canon Inc 情報処理装置及び方法
JP4751771B2 (ja) * 2006-06-07 2011-08-17 株式会社リコー 情報処理装置、情報処理システム、プログラム及びその記録媒体
US7962638B2 (en) * 2007-03-26 2011-06-14 International Business Machines Corporation Data stream filters and plug-ins for storage managers
JP5424546B2 (ja) * 2007-09-13 2014-02-26 京セラドキュメントソリューションズ株式会社 画像処理装置及び画像形成システム
JP4918904B2 (ja) * 2007-10-01 2012-04-18 ブラザー工業株式会社 印刷データ生成装置とコンピュータプログラム
JP5132260B2 (ja) 2007-10-31 2013-01-30 株式会社リコー 画像処理装置、画像処理方法、画像処理プログラム
US8228555B2 (en) * 2008-03-31 2012-07-24 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for parallel display list rasterization
JP4663754B2 (ja) * 2008-04-16 2011-04-06 シャープ株式会社 印刷システム
US8479192B2 (en) * 2008-06-27 2013-07-02 Xerox Corporation Dynamic XPS filter
CN102202904B (zh) * 2008-10-27 2014-12-31 株式会社佐藤知识财产研究所 使用程序脚本语言的标识打印机api
JP5317641B2 (ja) * 2008-11-17 2013-10-16 キヤノン株式会社 画像処理方法及び画像処理装置ならびに該画像処理方法を実行するためのプログラム
JP5369782B2 (ja) * 2009-03-12 2013-12-18 株式会社リコー 画像形成装置、情報処理方法、及びプログラム
IL199616A0 (en) * 2009-06-28 2010-05-17 Chaim Shen Orr Pattern-free encryption
JP2011034554A (ja) * 2009-07-09 2011-02-17 Ricoh Co Ltd 画像形成装置及びプログラム
JP5651958B2 (ja) * 2010-01-20 2015-01-14 セイコーエプソン株式会社 印刷制御装置、印刷制御システム、印刷装置及び印刷制御方法
US8782605B2 (en) * 2010-05-28 2014-07-15 Salesforce.Com, Inc. Methods and systems for presenting different versions of an application
JP5593924B2 (ja) * 2010-07-28 2014-09-24 セイコーエプソン株式会社 印刷制御装置、印刷装置及び印刷装置における印刷制御方法
US9152437B2 (en) * 2010-10-28 2015-10-06 Hewlett-Packard Development Company, L.P. Dynamically installing image processing
US9535635B2 (en) * 2012-12-20 2017-01-03 Hewlett-Packard Development Company, L.P. Carrier images
JP6025547B2 (ja) * 2012-12-21 2016-11-16 キヤノンイメージングシステムズ株式会社 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム
JP6363888B2 (ja) * 2014-06-30 2018-07-25 キヤノン株式会社 情報処理装置、およびプログラム
JP6381319B2 (ja) * 2014-06-30 2018-08-29 キヤノン株式会社 情報処理装置、処理方法、及びプログラム
JP6330790B2 (ja) * 2015-11-19 2018-05-30 コニカミノルタ株式会社 印刷制御システム、印刷制御装置およびプログラム
US11469953B2 (en) 2017-09-27 2022-10-11 Intel Corporation Interworking of legacy appliances in virtualized networks
WO2019079960A1 (en) * 2017-10-24 2019-05-02 Intel Corporation MATERIAL ASSISTED VIRTUAL SWITCH
JP7009285B2 (ja) * 2018-03-30 2022-01-25 キヤノン株式会社 印刷装置、印刷装置の制御方法、および印刷システム
CN110941401A (zh) * 2018-09-25 2020-03-31 北京京东尚科信息技术有限公司 一种打印方法和装置
CN109783142B (zh) * 2018-12-21 2021-02-12 福建新大陆支付技术有限公司 一种基于pos机的多线程同步方法及pos机
EP3857500B1 (en) * 2019-07-01 2023-06-07 Digimarc Corporation Watermarking arrangements permitting vector graphics editing
JP6901016B1 (ja) * 2020-03-09 2021-07-14 日本電気株式会社 サーバ装置、エッジ機器、処理パタン特定方法及び制御プログラム
CN113934379B (zh) * 2020-06-29 2024-01-02 天翼云科技有限公司 基于桌面虚拟化技术的网络打印方法、介质和装置
CN111949330B (zh) * 2020-08-11 2022-06-24 深圳市前海手绘科技文化有限公司 一种手绘草稿加载方法
CN112600989B (zh) * 2020-12-01 2023-04-07 珠海奔图电子有限公司 图像处理方法及图像形成装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3796813B2 (ja) * 1996-05-13 2006-07-12 富士ゼロックス株式会社 描画処理装置
US6611347B1 (en) * 1996-12-20 2003-08-26 Canon Kabushiki Kaisha Print control apparatus, print control method, storage medium, and computer readable program performing a form overlay process
JPH11119927A (ja) 1997-10-16 1999-04-30 Mitsubishi Electric Corp プリンタ装置
US6683696B1 (en) * 1998-10-27 2004-01-27 Hewlett-Packard Development Company, L.P. Filter based data imaging method for an image forming device
JP2000148424A (ja) 1998-11-13 2000-05-30 Nec Corp ネットワークプリントシステム、そのシステムで使用するプリンタ及びクライアント装置
US6661526B1 (en) * 1999-05-04 2003-12-09 Hewlett-Packard Development Company, L.P. Printer drivers using filters that are operating system-independent and printer-independent
US6707568B1 (en) 1999-11-02 2004-03-16 Ricoh Company, Ltd. Printer driver filter and method of printing with the same
JP3731719B2 (ja) * 2000-03-29 2006-01-05 ノーリツ鋼機株式会社 写真プリントシステム
US7617446B2 (en) * 2001-03-26 2009-11-10 International Business Machines Corporation Method and system for pre-print processing of web-based documents to reduce printing costs
US6987588B2 (en) 2001-06-25 2006-01-17 Xerox Corporation Text and image quality enhancement
US20030182575A1 (en) * 2002-03-21 2003-09-25 Korfanta Craig M. Performing encryption-oriented action on document at host device prior to transmission to printer-related device over network
US20040001218A1 (en) 2002-06-27 2004-01-01 Christiansen Robert Douglas System and method for customizing an imaging device
US6968150B2 (en) * 2003-12-23 2005-11-22 Sharp Laboratories Of America, Inc. Systems and methods for adding post-collation operations and interleaved imaging jobs to an imaging job

Also Published As

Publication number Publication date
CN1934531A (zh) 2007-03-21
CN100533365C (zh) 2009-08-26
US20090180133A1 (en) 2009-07-16
KR100852795B1 (ko) 2008-08-18
EP1735687A1 (en) 2006-12-27
US8373874B2 (en) 2013-02-12
EP1735687A4 (en) 2009-09-30
KR100815728B1 (ko) 2008-03-20
KR20070011399A (ko) 2007-01-24
JP2005284384A (ja) 2005-10-13
JP4164467B2 (ja) 2008-10-15
WO2005093560A1 (en) 2005-10-06

Similar Documents

Publication Publication Date Title
KR100815728B1 (ko) 화상 처리 장치, 화상 처리 방법, 및 기억 매체
US8171463B2 (en) Image processing apparatus and control method thereof
CN101331453B (zh) 信息处理设备和方法
US8804172B2 (en) Non-transitory computer readable recording medium stored with printer driver updating program and printer driver updating method
JP4563161B2 (ja) バックプレーン
JP2008203930A (ja) サーバ装置、ドライバ処理方法、記憶媒体、プログラム
CN101458615B (zh) 信息处理设备和信息处理设备控制方法
JP2008203929A (ja) サーバ装置、クライアント装置、ドライバ処理方法、記憶媒体、プログラム
US20150355871A1 (en) Information processing apparatus, method for controlling information processing apparatus, and storage medium
JP2006164253A (ja) データ処理装置および設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体および制御プログラム
US6999188B1 (en) Dynamically configurable printer and method of use thereof
US11520536B2 (en) Information processing apparatus, control method and program therefor, and server system capable of communicating with the information processing apparatus
JP2006268467A (ja) 画像処理装置
JPH11143656A (ja) 印刷システムおよび印刷システムのデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2006215720A (ja) 画像処理装置及びその制御方法
JP2009043078A (ja) シミュレータプログラム及び記録媒体
JP2013131109A (ja) 印刷管理装置、印刷管理方法、及びコンピュータプログラム
JP2019164447A (ja) 情報処理装置、情報処理方法、プログラム、及び画像形成システム
JP2019049825A (ja) ポイントアンドプリント環境におけるドライバーの更新方法、プログラム、及び、情報処理装置
JP2007201796A (ja) 画像形成装置

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130221

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140226

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160226

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170224

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180226

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190304

Year of fee payment: 12