KR20170099211A - 복합 문서에 포함된 이미지 객체의 화질 개선 방법 및 이를 수행하기 위한 장치 - Google Patents

복합 문서에 포함된 이미지 객체의 화질 개선 방법 및 이를 수행하기 위한 장치 Download PDF

Info

Publication number
KR20170099211A
KR20170099211A KR1020160021309A KR20160021309A KR20170099211A KR 20170099211 A KR20170099211 A KR 20170099211A KR 1020160021309 A KR1020160021309 A KR 1020160021309A KR 20160021309 A KR20160021309 A KR 20160021309A KR 20170099211 A KR20170099211 A KR 20170099211A
Authority
KR
South Korea
Prior art keywords
raster
commands
command
image
merged
Prior art date
Application number
KR1020160021309A
Other languages
English (en)
Inventor
정주영
김소혜
Original Assignee
에스프린팅솔루션 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스프린팅솔루션 주식회사 filed Critical 에스프린팅솔루션 주식회사
Priority to KR1020160021309A priority Critical patent/KR20170099211A/ko
Priority to US15/424,353 priority patent/US10169688B2/en
Priority to EP17154849.8A priority patent/EP3211519B1/en
Priority to CN201710099796.4A priority patent/CN107102827B/zh
Publication of KR20170099211A publication Critical patent/KR20170099211A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1867Post-processing of the composed and rasterized print image
    • G06K15/1872Image enhancement
    • 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/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1245Job translation or job parsing, e.g. page banding by conversion to intermediate or common format
    • 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
    • G06F3/1208Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
    • 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
    • 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/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • 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/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1248Job translation or job parsing, e.g. page banding by printer language recognition, e.g. PDL, PCL, PDF
    • 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
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1835Transforming generic data
    • G06K15/1836Rasterization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1852Generation of the printable image involving combining data of different types
    • G06K15/1855Combining raster data and graphic primitives
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1867Post-processing of the composed and rasterized print image
    • G06K15/1889Merging with other data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/004Generic data transformation
    • G06K2215/0042Rasterisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Image Processing (AREA)

Abstract

일 실시예에 따른 복합 문서에 포함된 이미지 객체의 화질을 개선하는 방법은, 이미지 객체를 포함하는 복합 문서에 대한 인쇄 요청을 수신하는 단계; 상기 복합 문서에 대응되는 데이터 중에서 상기 이미지 객체에 대응되는 부분들을 병합하고, 상기 이미지 객체의 화질을 개선하는 단계; 및 상기 복합 문서에 대응되는 데이터를 프린터 제어 언어로 인코딩하여 출력하는 단계를 포함한다.

Description

복합 문서에 포함된 이미지 객체의 화질 개선 방법 및 이를 수행하기 위한 장치 {METHOD FOR ENHANCING QUALITY OF IMAGE OBJECT INCLUDED IN COMPOUND DOCUMENT AND APPARATUS FOR PERFORMING THE SAME}
복합 문서(compound document)에 포함된 이미지 객체에 화질 개선 알고리즘(image enhancement algorithm)을 효과적으로 적용하기 위한 방법 및 이러한 방법을 수행하기 위한 프린터 드라이버에 관한 것이다.
PC, 스마트폰 또는 태블릿 등과 같은 컴퓨팅 장치에는 문서의 생성 및 편집을 지원하는 어플리케이션이 설치될 수 있다. 이러한 어플리케이션에서 생성 또는 편집된 문서에 대한 인쇄 요청이 입력되면, 문서에 대응되는 디지털 데이터는 프린팅 커맨드(printing command)로 변환되어 컴퓨팅 장치에 설치된 프린터 드라이버(printer driver)로 전송되고, 프린터 드라이버는 수신한 프린팅 커맨드를 프린터가 지원하는 프린터 제어 언어(printer control language)로 인코딩(encoding)한 후 프린터로 전송한다. 프린터는 수신한 프린팅 커맨드를 에뮬레이션(emulation)하여 프린팅 데이터(printing data)를 생성하고, 생성된 프린팅 데이터를 인쇄한다.
한편, 복합 문서란 텍스트, 그래픽 및 이미지 등과 같은 다양한 타입의 객체들을 포함하는 문서를 의미한다. 그런데, 현재 일반적으로 사용되는 OS(operating system) 및 문서 생성 어플리케이션에 따를 경우, 복합 문서에 포함된 이미지 객체는, 문서상에 실제로는 하나의 단일 이미지(single image)로 표현되는 객체의 경우에도 복수의 커맨드로 분할되어 표현된다. 따라서, 이미지 객체에 화질 개선 알고리즘(image enhancement algorithm)을 적용하는데 있어서 제약이 있는 문제점이 있다.
복합 문서에 포함된 이미지 객체에 효과적으로 화질 개선 알고리즘을 적용할 수 있는 방법 및 이를 수행하기 위한 장치를 제공하고자 한다.
상기 기술적 과제를 해결하기 위한 일 실시예에 따른 복합 문서에 포함된 이미지 객체의 화질을 개선하는 방법은, 이미지 객체를 포함하는 복합 문서에 대한 인쇄 요청을 수신하는 단계; 상기 복합 문서에 대응되는 데이터 중에서 상기 이미지 객체에 대응되는 부분들을 병합하고, 상기 이미지 객체의 화질을 개선하는 단계; 및 상기 복합 문서에 대응되는 데이터를 프린터 제어 언어로 인코딩하여 출력하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 다른 실시예에 따른 장치는, 이미지 객체를 포함하는 복합 문서에 대한 인쇄 요청을 수신하는 입출력 장치; 상기 복합 문서에 대응되는 데이터 중에서 상기 이미지 객체에 대응되는 부분들을 병합하고, 상기 이미지 객체의 화질을 개선한 후, 상기 복합 문서에 대응되는 데이터를 프린터 제어 언어로 인코딩하는 제어부; 및 상기 인코딩된 복합 문서에 대응되는 데이터를 화상형성장치로 전송하는 네트워크 인터페이스를 포함할 수 있다.
단일 이미지에 대응되는 래스터 커맨드(raster command)들을 병합한 후에 화질 개선 알고리즘을 적용함으로써, 그 효과 및 효율을 향상시킬 수 있다.
도 1은 일 실시예에 따른 화질 개선 방법을 수행하기 위한 PC의 하드웨어 구성을 도시한 도면이다.
도 2는 일 실시예에 따른 화질 개선 방법을 수행하기 위한 PC 및 프린터의 소프트웨어 구성을 도시한 도면이다.
도 3은 일 실시예에 따른 화질 개선 방법을 수행하기 위한 PC의 소프트웨어 구성 중, 프린터 드라이버의 구성을 구체화하여 도시한 도면이다.
도 4는 일 실시예에 따라 단일 이미지 객체가 복수의 래스터 커맨드로 분할되어 표현되는 과정을 도시한 도면이다.
도 5는 일 실시예에 따라 다양한 타입의 객체를 포함하는 복합 문서에 대한 프린팅 커맨드가 생성되는 과정을 도시한 도면이다.
도 6은 일 실시예에 따라 래스터 커맨드를 병합하고, 화질 개선 알고리즘을 적용한 후, 다시 래스터 커맨드를 분할하는 과정을 도시한 도면이다.
도 7은 소스 이미지와 데스티네이션 이미지의 확대/축소 비율에 기초하여 병합 대상이 되는 래스터 커맨드를 판단하는 실시예를 도시한 도면이다.
도 8은 데스티네이션 이미지의 위치를 비교하여 병합 대상이 되는 래스터 커맨드를 판단하는 실시예를 도시한 도면이다.
도 9는 중첩되는 영역의 픽셀 값을 비교하여 병합 대상이 되는 래스터 커맨드를 판단하는 실시예를 도시한 도면이다.
도 10 및 도 11은 화질 개선 방법의 실시예들을 순서도로 도시한 도면이다.
도 12는 화질 개선 알고리즘 중 선명화(sharpening) 연산을 설명하기 위한 도면이다.
이하에서는 도면을 참조하여 실시예들을 상세히 설명한다. 본 실시예들의 특징을 보다 명확히 설명하기 위하여 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서는 자세한 설명은 생략하기로 한다.
구체적인 실시예들을 설명하기에 앞서 프린터에서 문서가 출력되는 과정을 간략하게 설명하면 다음과 같다. 프린터 이외에 복합기(Multi Function Printer) 등과 같은 화상형성장치가 사용될 수도 있으나, 이하에서는 설명의 편의를 위해 프린터를 예로 들어서 설명한다.
PC, 스마트폰 또는 태블릿 등과 같은 컴퓨팅 장치에는 문서의 생성 및 편집을 지원하는 어플리케이션이 설치될 수 있다. 이하에서는 설명의 편의를 위해 PC를 예로 들어 설명한다. 어플리케이션에서 생성 또는 편집된 문서에 대한 인쇄 요청이 사용자로부터 입력되면, 문서에 대응되는 디지털 데이터는 PC에 설치된 OS(operating system)의 표준 함수를 이용하여 프린팅 커맨드(printing command)로 변환된다. 프린팅 커맨드의 예로는 GDI 커맨드 또는 XPS 커맨드 등이 있다. 그런데, 프린터 별로 지원 가능한 프린팅 커맨드가 다르므로, 문서에 대응되는 디지털 데이터는 PC에 연결된 프린터가 지원하는 프린팅 커맨드로 변환되어야 한다. 이를 위해, PC에는 프린터의 제조사가 제공하는 프린터 드라이버(printer driver)가 설치될 수 있다. 예를 들어, 프린터 드라이버는 PCL6 등과 같은 프린터 제어 언어(printer control language, PCL)를 이용하여 프린팅 커맨드를 인코딩한 후, 인코딩된 프린팅 커맨드를 프린터로 전송할 수 있다.
프린터는 수신한 프린팅 커맨드를 해석하여 프린팅 데이터(printing data)를 생성하고, 생성된 프린팅 데이터를 인쇄한다.
이하에서는 프린터 드라이버가 프린팅 커맨드를 처리하여 문서에 포함된 이미지의 화질을 개선하는 실시예들에 대해서 설명한다. 필요에 따라서는 프린터 드라이버가 아닌 다른 구성, 예를 들어 프린터 내부의 모듈에 의해서 화질을 개선하는 방법이 수행될 수도 있다. 또는 PC나 모바일 단말에 설치되는 문서의 생성 및 편집을 지원하는 어플리케이션 자체에서 직접 화질 개선 방법을 수행할 수도 있다.
도 1은 일 실시예에 따른 화질 개선 방법을 수행하기 위한 PC의 하드웨어 구성을 도시한 도면이다. 도 1을 참조하면, 일 실시예에 따른 화질 개선 방법을 수행하기 위한 PC(100)는 입출력 장치(input/output device 110), 네트워크 인터페이스(120), CPU(Central Processing Unit 130), 주기억장치(main memory 140) 및 보조기억장치(auxiliary memory 150)를 포함할 수 있다.
입출력 장치(110)는 사용자로부터 입력을 수신하기 위한 키보드, 마우스 또는 터치스크린 등의 입력 장치, 그리고 수신한 입력에 대한 처리 결과를 표시하기 위한 모니터 등의 출력 장치를 포함할 수 있다.
네트워크 인터페이스(120)는 PC(100)가 외부의 다른 장치 또는 인터넷과 유무선으로 통신을 수행할 수 있도록 하는 구성으로서, 특히 PC(100)는 네트워크 인터페이스(120)를 통해 프린터와 유무선으로 통신할 수 있다.
CPU(130)는 연산 처리를 수행하는 구성으로서 입출력 장치(110)로부터 수신한 제어 명령에 따라서, 보조기억장치(150)에 저장된 데이터 중 필요한 데이터를 주기억장치(140)에 임시로 저장해놓고 수시로 주기억장치(140)에 접근하여 데이터를 읽어와서 연산을 수행한다.
주기억장치(140)는 CPU(130)가 연산을 수행하는 동안 필요한 프로그램 등의 데이터가 임시적으로 저장되는 공간이다. 주기억장치(140)는 보조기억장치(150)에 비해 빠른 접근이 가능하므로, CPU(130)는 특정 연산을 수행하는 동안 필요한 데이터를 보조기억장치(150)로부터 불러와 주기억장치(140)에 임시적으로 저장해놓고 사용한다. 일반적으로 주기억장치(140)는 RAM 등과 같은 휘발성 메모리로 구성된다.
보조기억장치(150)는 주기억장치(140)의 한정된 저장용량을 보조하기 위해 사용되는 구성으로서, 일반적으로 주기억장치(140)에 비해 접근 속도가 느리지만 저장용량이 큰 HDD 등과 같은 비휘발성 메모리로 구성된다.
한편, CPU(130)는 주기억장치(140) 및 보조기억장치(150)에 접근하여 저장된 프로그램 등의 데이터를 이용하여 연산을 수행하므로, CPU(130), 주기억장치(140) 및 보조기억장치(150)를 통합하여 하나의 제어부로 볼 수도 있다.
도 1을 참조하면, 보조기억장치(150)에는 OS(10), 어플리케이션(20) 및 프린터 드라이버(30)가 설치된다. 어플리케이션(20)은 문서의 생성 및 편집을 지원하는 프로그램에 해당된다. 프린터 드라이버(30)는 프린팅 커맨드를 PCL로 인코딩하며, 또한 이하에서 설명하는 화질 개선 방법, 즉 복합 문서에 포함된 이미지 객체에 대한 화질 개선 방법을 수행할 수 있다. 프린터 드라이버(30)가 화질 개선 방법을 수행하는 구체적인 방법은 아래에서 예시 도면들을 참조하여 자세하게 설명하기로 한다.
도 2는 일 실시예에 따른 화질 개선 방법을 수행하기 위한 PC 및 프린터의 소프트웨어 구성을 도시한 도면이다. 도 2를 참조하면, PC(100)에는 OS(10), 어플리케이션(20) 및 프린터 드라이버(30)가 설치될 수 있으며, 프린터(200)에는 에뮬레이터(40) 및 프린트 엔진(50)이 설치될 수 있다.
소프트웨어 구성에서의 데이터의 흐름을 살펴보면, 어플리케이션(20)은 문서에 대한 인쇄 요청을 수신하면, OS(10)의 표준 함수를 이용하여 프린팅 커맨드를 생성하여 프린터 드라이버(30)에 전송한다. 프린터 드라이버(30)는 수신한 프린팅 커맨드를 PCL로 인코딩하여 프린터(200)로 전송한다. 프린터(200)의 에뮬레이터(40)는 수신한 프린팅 커맨드를 해석하여 프린팅 데이터를 생성하고, 생성된 프린팅 데이터를 프린트 엔진(50)에 전송한다. 프린트 엔진(50)은 수신한 프린팅 데이터를 인쇄한다.
이때, 프린터 드라이버(30)는 복합 문서에 포함된 이미지 객체에 화질 개선 알고리즘(image enhancement algorithm)을 적용할 수 있는데, 자세한 내용은 아래에서 프린터 드라이버(30)의 구체적인 구성이 도시된 도 3을 참조하여 설명한다.
도 3은 일 실시예에 따른 화질 개선 방법을 수행하기 위한 PC의 소프트웨어 구성 중, 프린터 드라이버의 구성을 구체화하여 도시한 도면이다.
도 3을 참조하여 복합 문서(compound document)에 포함된 이미지 객체의 화질 개선 방법을 자세하게 설명하기에 앞서, 복합 문서 및 그로부터 생성되는 프린팅 커맨드에 대해서 먼저 설명한다.
복합 문서란 둘 이상의 다양한 타입의 객체를 포함하는 문서를 의미한다. 이하에서는 텍스트 객체, 그래픽 객체 및 이미지 객체를 포함하는 복합 문서를 예를 들어 설명한다. 이때, 텍스트 객체는 문자나 숫자로 구성되고, 그래픽 객체는 선 및 도형 등으로 구성되며, 이미지 객체는 사진 등으로 구성된다.
복합 문서로부터 생성되는 프린팅 커맨드는 복합 문서에 포함된 다양한 타입의 객체들 각각에 대응되는 커맨드를 포함한다. 예를 들어, 복합 문서가 텍스트 객체, 그래픽 객체 및 이미지 객체를 포함한다면, 프린팅 데이터는 텍스트 커맨드(text command), 그래픽 커맨드(graphic command) 및 래스터 커맨드(raster command)를 포함한다. (이미지 객체는 래스터 커맨드에 대응)
그런데, 일반적으로 사용되는 OS 및 문서 생성/편집 어플리케이션에 의할 경우 복합 문서에 포함된 이미지 객체는 프린팅 커맨드 생성 과정에서 복수의 래스터 커맨드로 분할되어 표현된다. 다시 말해, 문서상에서는 실제로 하나의 단일 이미지(single image)로 표현되는 객체라도 프린팅 커맨드에서는 복수의 래스터 커맨드로 표현되며, 따라서 각각의 래스터 커맨드는 단일 이미지를 분할한 각각의 부분에 대응되게 된다.
이와 같이 이미지 객체가 복수의 래스터 커맨드로 분할되어 표현되기 때문에 이미지 객체에 화질 개선 알고리즘을 적용함에 있어서 제약이 발생하게 된다. 왜냐하면, 일부 화질 개선 알고리즘은 특정 위치의 픽셀 값을 보정하기 위해서 그 주변에 위치한 픽셀 값들을 이용해야 하는데, 이미지가 분할된 상태에서 이러한 알고리즘이 적용되게 되면 분할된 다른 부분의 픽셀 값들을 이용할 수 없기 때문이다. 따라서, 알고리즘 적용 후 분할된 부분들이 하나의 이미지로 합쳐졌을 때 분할 경계면 주변이 자연스럽지 못하게 되는 문제점이 있다.
단일 이미지로부터 분할된 복수의 래스터 커맨드 각각에 대해서 화질 개선 알고리즘을 적용할 경우 발생할 수 있는 문제점에 대한 이해를 돕기 위해, 구체적인 화질 개선 알고리즘에 대해서 설명한다. 단, 이하에서 설명되는 화질 개선 알고리즘 외에도 다른 알고리즘이 사용될 수도 있다.
화질 개선 알고리즘에는 다이나믹 레인지(dynamic range) 확장, 대비 증폭(contrast enhancement) 및 채도 향상(saturation enhancement) 등과 같이 컬러(color)를 변경하는 방법, 또는 선명화(sharpening) 및 평활화(smoothing) 등과 같이 이미지의 질감을 개선하는 방법 등이 있다. 이러한 화질 개선 알고리즘들은 개선 대상 이미지의 특정 픽셀의 값을 결정함에 있어서, 특정 픽셀의 주변에 위치한 픽셀들의 값을 이용한다. 그런데, 개선 대상 이미지가 복수의 부분으로 분할되어 있다면, 분할 경계면 주변에 위치한 주변 픽셀 정보를 이용할 수 없다. 따라서, 분할된 각 부분에 화질 개선 알고리즘을 적용한 후 하나의 이미지로 병합한다면 분할 경계면 부분이 자연스럽지 못하게 되는 문제점이 발생할 수 있다.
이하에서는 선명화 연산을 예로 들어 설명한다. 선명화 연산이란 특정 픽셀의 주변에 위치한 픽셀들의 값의 평균을 구하고, 특정 픽셀의 현재 값과 주변 픽셀값의 평균과의 차이값을 구하고, 차이값에 일정한 가중치를 곱한 후 특정 픽셀의 현재 값이 더함으로써, 특정 픽셀의 값이 주변과 더 차이가 나도록 하는 방법이다.
도 12를 참조하면, 픽셀 X를 기준으로 주변에 위치한 픽셀들(0~15)의 값이 픽셀 X의 값을 결정하는데 영향을 주게 된다. 하지만, 그림과 같이 픽셀 X의 아래 부분이 잘려져 있는 상태라면, 잘려진 부분에 위치한 픽셀들(10~15)의 값을 사용할 수 없으므로, 선명화 연산이 수행된 픽셀 X의 값은 원본 이미지 전체에 대해서 선명화 연산을 사용했을 때와 다른 결과를 얻게 된다.
이하에서는, 대비 증폭 방법을 예로 들어 설명한다. 주로 0~255 범위의 값을 갖는 한 바이트 데이터를 사용하여 이미지를 표현하기 때문에, 128을 기준으로 1D LUT(lookup table)의 기울기를 조정하는 방법을 사용할 수 있으나, 이러한 방법은 0~255 범위의 값이 고르게 분포하고 있는 이미지의 경우 효과를 기대할 수 있으나, 이미지의 밝기가 전체적으로 밝거나 어두워서 평균이 0 또는 255에 치우쳐 있ㅆ는 경우, 또는 이미지의 각 부분에 지역적으로 일정 범위의 값이 몰려 있는 경우 오히려 품질이 더 나빠질 수 있다. 따라서, 128이 아닌 전체 평균을 기준으로 기울기를 조정하거나, 전체 이미지에 포함된 각 영역의 상대적인 값을 기준으로 콘트라스트(contrast)를 조정하여 화질을 개선하는 방법이 사용된다. 이러한 경우에도 특정 픽셀의 값을 조정함에 있어서 주변 픽셀들의 정보를 이용해야 하므로, 앞서 설명한 선명화 연산에서 발생할 수 있는 문제점이 유사하게 발생할 수 있다.
다이나믹 레인지 확장 방법의 경우도 하나의 이미지 전체의 정보를 참조하여 화질을 개선하는 방법이므로, 분할된 이미지를 그대로 사용할 경우 병합되었을 때 분할 경계 부분이 자연스럽지 않을 수 있다. 또한, 앞서 예로 든 다른 화질 개선 알고리즘들 역시 유사한 문제점들이 발생할 수 있다.
한편, 단일 이미지가 복수의 래스터 커맨드로 분할되기 때문에 압축 효율 측면에 있어서도 문제가 있을 수 있다. 예를 들어, JPEG 파일은 8x8 블록을 최소 단위로 하여 압축을 하는데, 분할된 이미지의 크기가 8의 배수가 아니라면 압축 효율이 나빠지며, 분할된 이미지의 크기가 오히려 압축 최소 단위보다 작다면 오히려 압축을 하지 않는 것이 더 효과적일 수도 있다.
따라서, 이하의 실시예에서는 하나의 단일 이미지로부터 분할된 부분들에 대응되는 래스터 커맨드들을 일정한 기준에 따라 병합(merge)한 후에 화질 개선 알고리즘을 적용하거나, 또는 압축을 하는 방식으로 프로세스를 수행한다.
다시 도 3으로 돌아오면, 프린터 드라이버(30)의 구체적인 구성이 도시되었다. 도 3을 참조하면, 프린터 드라이버(30)는 커맨드 핸들러(command handler 31), 프레임 버퍼(frame buffer 32), 래스터 옵티마이저(raster optimizer 33) 및 PCL 인코더(PCL encoder 34)를 포함할 수 있다.
커맨드 핸들러(31)는 어플리케이션(20)으로부터 수신한 프린팅 커맨드를 프레임 버퍼(32)에 저장한다. 이때, 커맨드 핸들러(31)는 복합 문서의 페이지 단위로 프린팅 커맨드를 프레임 버퍼(32)에 저장한다.
래스터 옵티마이저(33)는 프레임 버퍼(32)에 복합 문서의 한 페이지에 대응되는 프린팅 커맨드가 저장되면, 프린팅 커맨드에 포함된 복수의 래스터 커맨드들을 병합한다.
이때, 병합할 래스터 커맨드들을 선택하는 기준은 다음과 같다.
첫 번째로, 소스 이미지와 데스티네이션 이미지의 확대/축소 비율에 기초하여 판단할 수 있다. 래스터 커맨드에는 소스 이미지와 데스티네이션 이미지의 크기에 대한 정보가 포함되므로, 각 래스터 커맨드에 대해 소스 이미지와 데스티네이션 이미지간의 확대/축소 비율을 산출할 수 있고, 산출된 확대/축소 비율이 동일한 래스터 커맨드들은 단일 이미지로부터 분할된 부분들에 대응되는 것으로 판단할 수 있다.
두 번째로, 데스티네이션 이미지의 인접 여부에 기초하여 판단할 수 있다. 래스터 커맨드에는 데스티네이션 이미지의 위치에 대한 정보가 포함되므로, 이를 비교하여 인접 여부를 판단할 수 있다.
세 번째로, 분할된 부분의 일부 영역이 겹치는(overlapping) 경우 데이터의 동일성 여부에 기초하여 판단할 수 있다.
병합 대상이 되는 래스터 커맨드를 선택하는 방법은 아래에서 도 7 내지 도 9를 참조하여 다시 한 번 자세하게 설명하도록 한다.
래스터 커맨드들의 병합이 완료되면, 래스터 옵티마이저(33)는 병합된 래스터 커맨드 그룹에 화질 개선 알고리즘을 적용한다. 다만, 특정한 경우에는 병합된 래스터 커맨드에 화질 개선 알고리즘을 적용하지 않을 수 있다. 예를 들어, 데스티네이션 이미지의 크기가 너무 작아서 화질 개선 효과를 기대하기 어려운 경우이거나, 병합된 래스터 커맨드가 8비트 이하인 경우이거나, 또는 병합된 래스터 커맨드가 사진 등과 같은 이미지를 표현하는 것이 아니라고 판단되는 경우에는 화질 개선 알고리즘을 적용하지 않는다.
한편, 래스터 옵티마이저(33)는 병합된 래스터 커맨드 그룹에 압축을 수행할 수도 있다.
래스터 옵티마이저(33)는 래스터 커맨드들을 병합하여 화질 개선 알고리즘을 적용한 후에, 필요한 경우 병합된 래스터 커맨드 그룹 중 일부 또는 전부를 다시 분할할 수도 있다. 예를 들어, 병합되기 전의 래스터 커맨드 사이에 다른 커맨드가 존재하고, 커맨드의 연산 순서가 출력에 영향을 미치는 경우라면 병합된 래스터 커맨드를 다시 분할하여 원래의 커맨드 순서에 따라서 배열한다.
래스터 옵티마이저(33)가 프린팅 커맨드에 화질 개선 알고리즘의 적용한 후 다시 프레임 버퍼(32)로 전송하면, 프레임 버퍼(32)는 수신한 프린팅 커맨드를 PCL 인코더(34)로 전송한다.
PCL 인코더(34)는 프린터가 지원하는 PCL을 이용하여 수신한 프린팅 커맨드를 인코딩하고, 인코딩된 프린팅 커맨드를 PC(100)에 연결된 프린터로 출력한다.
도 4는 일 실시예에 따라 단일 이미지 객체가 복수의 래스터 커맨드로 분할되어 표현되는 과정을 도시한 도면이다. 도 4에는 단일 이미지(410), 프린팅 커맨드(420) 및 분할된 이미지(430)가 개념적으로 도시되었다.
도 4를 참조하면, 단일 이미지(410)에 대해서 프린팅 커맨드(420)를 생성하면 복수의 래스터 커맨드들(RC_p1 내지 RC_p4)로 표현된다. 즉, 프린팅 커맨드(420)에 포함된 래스터 커맨드들은 분할된 이미지(430)의 각 부분들(p1 내지 p4)에 각각 대응된다. 한편 이때, p1에 대한 래스터 커맨드는 “RC_p1”과 같이 표시하고, 이하에서 텍스트 커맨드 및 그래픽 커맨드에 대해서도 유사한 방식으로 표시하기로 한다.
도 5는 일 실시예에 따라 다양한 타입의 객체를 포함하는 복합 문서에 대한 프린팅 커맨드가 생성되는 과정을 도시한 도면이다.
도 5를 참조하면, 복합 문서(510)는 이미지 객체(511), 그래픽 객체(512) 및 텍스트 객체(513)를 포함한다. 그리고, 복합 문서(510)에 대하여 생성된 프린팅 커맨드(520)에는 각 객체에 대응되는 커맨드들이 포함되어 있다. 구체적으로, 프린팅 커맨드(520)에는 이미지 객체(511)의 각 분할 부분에 대응되는 래스터 커맨드들(RC_p1 내지 RC_p4), 그래픽 객체(512)의 원에 대응되는 그래픽 커맨드(GC_c)와 삼각형에 대응되는 그래픽 커맨드(GC_t), 그리고 텍스트 객체(513)에 대응되는 텍스트 커맨드들(TC_xxxx 및 TC_yyyy)이 포함되어 있다.
한편, 530 영역에는 프린팅 커맨드(520)에 대응되는 구성들을 프린팅 커맨드(520)의 순서에 따라 도시하였다.
이와 같이, 다양한 객체를 포함하는 복합 문서(510)에 대한 프린팅 커맨드(520)를 생성하면, 이미지 객체(511)는 복수의 래스터 커맨드들로 분할되어 표현되며, 복수의 래스터 커맨드들 사이에는 다른 커맨드들이 위치하게 됨을 알 수 있다. 따라서, 프린팅 커맨드(520)에 포함된 래스터 커맨드들을 병합하기 위해서는, 래스터 커맨드들이 단일 이미지로부터 분할된 것인지 여부를 판단할 필요가 있다. 래스터 커맨드들이 단일 이미지로부터 분할된 것인지 여부를 판단하는 기준, 즉 병합할 래스터 커맨드들을 선택하는 자세한 기준은 아래에서 도 7 내지 도 9를 참조하여 자세히 설명한다.
도 6은 일 실시예에 따라 래스터 커맨드를 병합하고, 화질 개선 알고리즘을 적용한 후, 다시 래스터 커맨드를 분할하는 과정을 도시한 도면이다. 도 6에서는 610a, 620a, 630a 및 640a 영역에 프린팅 커맨드들을 표시하였고, 610b, 620b, 630b 및 640b 영역에는 각각의 프린팅 커맨드에 대응되는 구성들을 도시하였다. 따라서, 610a, 620a, 630a 및 640a 영역에 대한 설명은 동일하게 610b, 620b, 630b 및 640b 영역에도 적용된다.
도 6을 참조하면, 610a 영역의 프린팅 커맨드 중에서 단일 이미지에 대응되는 래스터 커맨드들(RC_p1 내지 RC_p4)을 선택하고, 선택된 래스터 커맨드들을 병합한다. 단일 이미지에 대응되는 래스터 커맨드들을 선택하는 앞서 설명한 바와 같다. 620a 영역에는 래스터 커맨드들이 병합된 후의 프린팅 커맨드가 표시되었고, 이 중 621a 영역에는 병합된 래스터 커맨드 그룹이 표시되었다.
621a 영역의 병합된 래스터 커맨드 그룹에 화질 개선 알고리즘을 적용한 후의 프린팅 커맨드를 630a 영역에 표시하였다. 631a 영역에는 화질 개선 알고리즘이 적용된 래스터 커맨드 그룹(RC_p1e 내지 RC_p4e)이 표시되었다.
마지막으로, 631a 영역의 병합된 래스터 커맨드 그룹에서 분할이 필요한 일부 래스터 커맨드를 분할한다. 예를 들어, 병합된 래스터 커맨드 사이에 원래는 다른 커맨드가 위치하고 있었던 경우에는 래스터 커맨드를 분할한다. 즉, 610a 영역의 프린팅 커맨드 상에서, RC_p1e와 RC_p2e 사이에는 GC_c가 있었고, RC_p3e와 RC_p4e 사이의 TC_xxxx 및 GC_t가 있었으므로, 이 두 부분을 분할한다. 하지만, 641a 영역의 RC_p2e와 RC_p3e 사이에는 다른 커맨드가 존재하지 않았으므로 이 두 래스터 커맨드는 분할하지 않고 하나의 그룹으로 병합된 상태를 유지할 수도 있다.
한편, 병합된 래스터 커맨드 그룹에 그룹 ID를 부여하고, 래스터 커맨드 그룹을 다시 분할하더라도 그룹 정보를 이후의 렌더링 과정에서 사용할 수 있다. 예를 들어, 병합되었다가 분할된 래스터 커맨드에 부여되는 그룹 정보는 그룹 ID, 그룹에 포함된 래스터 커맨드의 총 개수, 그룹 내에서의 해당 래스터 커맨드의 위치 등을 포함하며, 이후의 렌더링 과정에서 이러한 그룹 정보를 사용할 수 있다.
특히, 소스 이미지와 데스티네이션 이미지의 크기가 달라지는 리사이징(resizing) 과정에서 인터폴레이션 알고리즘(interpolation algorithm)을 사용하는데 있어서, 1st 오더(order) 이상의 방식을 사용하는 경우, 분할된 경계가 두드러져 보이는 문제가 있어 제로 오더(zero order)만을 사용할 수 밖에 없는 한계가 있지만, 그룹 정보를 이용함으로써 인접한 래스터 커맨드들을 식별할 수 있으므로 다양한 알고리즘을 적용할 수 있다.
이하에서는 프린팅 커맨드에 포함된 래스터 커맨드 중에서 병합의 대상이 되는 래스터 커맨드, 즉 단일 이미지에 대응되는 래스터 커맨드를 선택하는 구체적인 방법에 해서 도 7 내지 도 9를 참조하여 설명한다.
도 7은 소스 이미지와 데스티네이션 이미지의 확대/축소 비율에 기초하여 병합 대상이 되는 래스터 커맨드를 판단하는 실시예를 도시한 도면이다.
도 7을 참조하면, 710 영역에는 래스터 커맨드들(RC_p1 및 RC_p2)이 표시되고, 720 영역에는 각 래스터 커맨드들에 대응되는 소스 이미지들(p1_s 및 p2_s)이 표시되고, 730 영역에는 각 래스터 커맨드들에 대응되는 데스티네이션 이미지들(p1_d 및 p2_d)이 표시되었다. 각 래스터 커맨드들로부터 소스 이미지(source image)와 데스티네이션 이미지(destination image)의 확대/축소 비율을 산출하고, 산출된 비율을 다른 래스터 커맨드로부터 산출된 비율과 비교할 수 있다.
도 7에서 p1의 경우 소스 이미지(p1_s)로부터 데스티네이션 이미지(p1_d)로 확대된 비율은 2배이다. 또한, p2의 경우에도 소스 이미지(p2_s)로부터 데스티네이션 이미지(p2_d)로 확대된 비율은 2배이다. 즉, p1와 p2는 소스 이미지와 데스티네이션 이미지간의 확대/축소 비율이 일치하므로, 단일 이미지에 대한 래스터 커맨드들로 판단할 수 있다.
도 8은 데스티네이션 이미지의 위치를 비교하여 병합 대상이 되는 래스터 커맨드를 판단하는 실시예를 도시한 도면이다.
도 8을 참조하면, 810 영역에는 래스터 커맨드들(RC_p1 및 RC_p2)이 표시되고, 820 영역에는 각 래스터 커맨드에 대응되는 데스티네이션 이미지들(p1_d 및 p2_d)이 표시되었다.
도 8에 도시된 실시예에서는 데스티네이션 이미지들의 위치를 비교함으로써 래스터 커맨드가 단일 이미지에 대응되는지 여부를 판단할 수 있다. 즉, 래스터 커맨드들에 대응되는 데스티네이션 이미지들의 위치가 서로 인접하다면, 래스터 커맨드들은 단일 이미지에 대응되는 것으로 판단할 수 있다.
도 9는 중첩되는 영역의 픽셀 값을 비교하여 병합 대상이 되는 래스터 커맨드를 판단하는 실시예를 도시한 도면이다.
도 9를 참조하면, 910 영역에는 래스터 커맨드들(RC_p1 및 RC_p2)이 표시되고, 920 영역에는 각 래스터 커맨드에 대응되는 데스티네이션 이미지들(p1_d 및 p2_d)이 표시되었다.
단일 이미지로부터 복수의 래스터 커맨드를 생성함에 있어서, 어느 한 래스터 커맨드의 일부 영역이 이웃한 다른 래스터 커맨드의 일부 영역과 겹치도록 할 수 있는데, 도 9의 실시예에서는 겹치는 영역(overlapping area)의 픽셀 값이 일치하는지 여부에 따라서, 병합할 래스터 커맨드를 선택한다.
도 9를 참조하면, 920 영역의 p1의 데스티네이션 이미지(p1_d)의 아랫부분(921)의 픽셀 값과, p2의 데스티네이션 이미지(p2_d)의 윗부분(922)의 픽셀 값을 비교하고, 픽셀 값이 일치하면 두 래스터 커맨드들(RC_p1 및 RC_p2)을 병합 대상으로 선택한다. 한편, 도 9에서는 데스티네이션 이미지를 예로 들어 설명했지만, 소스 이미지의 픽셀 값을 비교하는 것도 가능하다.
도 10 및 도 11은 화질 개선 방법의 실시예들을 순서도로 도시한 도면이다.
도 10을 참조하면, 1001 단계에서 프린터 드라이버는 복합 문서에 대한 프린팅 커맨드를 수신한다. 이때, 프린팅 커맨드는 복합 문서에 포함된 다양한 객체 각각에 대한 커맨드를 포함하고 있다.
1002 단계에서 프린터 드라이버는 수신한 프린팅 커맨드에 포함된 래스터 커맨드들을 병합한다. 자세하게는, 프린터 드라이버는 프린팅 커맨드에 포함된 래스터 커맨드들 중에서 단일 이미지에 대응되는 래스터 커맨드들을 선택하고, 선택된 래스터 커맨드들을 병합한다. 단일 이미지에 대응되는 래스터 커맨드들을 선택하는 방법은 앞서 도 7 내지 도 9를 참조하여 설명한 바와 같다.
1003 단계에서는 프린터 드라이버는 병합된 래스터 커맨드 그룹에 화질 개선 알고리즘을 적용한다. 단일 이미지 별로 병합된 래스터 커맨드 그룹에 알고리즘을 적용하므로, 래스터 커맨드가 분할된 상태에서 알고리즘을 적용했을 때 발생할 수 있는 문제점을 방지할 수 있다.
1004 단계에서 프린터 드라이버는 프린팅 커맨드를 프린터가 해석 가능한 프린터 제어 언어로 인코딩하고, 1005 단계에서 프린터 드라이버는 프린터 제어 언어로 인코딩된 프린팅 커맨드를 프린터로 전송한다.
도 11에는 도 10의 단계들을 더 구체화하여 나타내었다.
도 11을 참조하면, 프린터 드라이버는 1101 단계에서 복합 문서에 대한 프린팅 커맨드를 수신하고, 1102 단계에서는 수신한 프린팅 커맨드를 복합 문서의 페이지 단위로 프레임 버퍼에 저장한다.
1103 단계에서 프린터 드라이버는 한 페이지의 복합 문서에 대한 프린팅 커맨드가 프레임 버퍼에 저장되었는지 여부를 판단하고, 판단 결과 아직 한 페이지에 대한 프린팅 커맨드가 저장되지 않았다면, 1101 단계로 돌아가서 추가적으로 프린팅 커맨드를 수신한다.
반면, 한 페이지의 복합 문서에 대한 프린팅 커맨드가 프레임 버퍼에 저장되었다고 판단되면, 1104 단계로 진행하여 프린터 드라이버는 프린팅 커맨드에 포함된 래스터 커맨드들을 병합한다. 병합할 래스터 커맨드들을 선택하는 방법은 앞서 도 7 내지 도 9를 참조하여 설명한 바와 같다.
1105 단계에서 프린터 드라이버는 병합된 래스터 커맨드 그룹에 화질 개선 알고리즘을 적용한다.
병합된 래스터 커맨드 그룹에 화질 개선 알고리즘을 적용한 후, 1106 단계에서 프린터 드라이버는 병합된 래스터 커맨드 그룹 중에서 분할이 필요한 래스터 커맨드가 있는지 여부를 판단한다. 분할이 필요한 래스터 커맨드를 판단하는 방법에 대해서는 앞서 설명한 바와 같다.
판단 결과, 래스터 커맨드의 분할이 필요하다고 판단되면, 프린터 드라이버는 1107 단계로 진행하여 래스터 커맨드를 분할한 후 1108 단계로 진행한다. 하지만, 래스터 커맨드의 분할이 필요하지 않다고 판단되면, 프린터 드라이버는 바로 1108 단계로 진행하여 프린팅 커맨드를 프린터 제어 언어로 인코딩한 후 프린터로 전송한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명에 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 한다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 예컨데 롬, 플로피 디스크, 하드디스크 등과 같은 마그네틱 저장매체, 예컨데 씨디롬, 디브이디 등과 같은 광학적 판독매체, 및 예컨데 인터넷을 통한 전송과 같은 캐리어 웨이브와 같은 저장매체를 포함한다.
100: PC 110: 입출력 장치
120: 네트워크 인터페이스 130: CPU
140: 주기억장치 150: 보조기억장치
10: OS 20: 어플리케이션
30: 프린터 드라이버 31: 커맨드 핸들러
32: 프레임 버퍼 33: 래스터 옵티마이저
34: PCL 인코더 200: 프린터

Claims (19)

  1. 복합 문서에 포함된 이미지 객체의 화질을 개선하는 방법에 있어서,
    이미지 객체를 포함하는 복합 문서에 대한 인쇄 요청을 수신하는 단계;
    상기 복합 문서에 대응되는 데이터 중에서 상기 이미지 객체에 대응되는 부분들을 병합하고, 상기 이미지 객체의 화질을 개선하는 단계; 및
    상기 복합 문서에 대응되는 데이터를 프린터 제어 언어로 인코딩하여 출력하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 화질을 개선하는 단계는,
    상기 복합 문서에 대한 프린팅 커맨드를 수신하는 단계;
    상기 프린팅 커맨드에 중에서 상기 이미지 객체에 대응되는 복수의 래스터 커맨드들을 병합하는 단계; 및
    상기 병합된 래스터 커맨드에 화질 개선 알고리즘을 적용하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 복수의 래스터 커맨드들을 병합하는 단계는,
    상기 복수의 래스터 커맨드들 각각에 대하여 소스 이미지와 데스티네이션 이미지의 확대/축소 비율을 산출하는 단계; 및
    상기 산출된 확대/축소 비율이 일치하는 래스터 커맨드들을 병합하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제2항에 있어서,
    상기 복수의 래스터 커맨드들을 병합하는 단계는,
    상기 복수의 래스터 커맨드들의 데스티네이션 이미지의 위치를 비교함으로써 서로 인접한 래스터 커맨드들을 선택하는 단계; 및
    상기 선택된 래스터 커맨드들을 병합하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제2항에 있어서,
    상기 복수의 래스터 커맨드들을 병합하는 단계는,
    상기 복수의 래스터 커맨드들간의 중첩되는 영역의 픽셀 값을 비교하는 단계; 및
    상기 중첩되는 영역의 픽셀 값이 일치하는 래스터 커맨드들을 병합하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제2항에 있어서,
    상기 화질을 개선하는 단계는,
    상기 병합된 래스터 커맨드를 다시 분할하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 병합된 레스터 커맨드를 다시 분할하는 단계는, 상기 래스터 커맨드가 병합되기 전의 상기 프린팅 커맨드에 포함된 커맨드들의 순서에 기초하여 상기 병합된 래스터 커맨드를 분할하는 것을 특징으로 하는 방법.
  8. 제6항에 있어서,
    상기 병합된 래스터 커맨드의 그룹에 그룹 ID를 부여하고, 상기 병합된 래스터 커맨드로부터 다시 분할되는 래스터 커맨드에는 그룹 ID, 그룹에 포함된 커맨드의 개수 및 상기 다시 분할되는 래스터 커맨드의 그룹 내에서의 위치 등을 포함하는 그룹 정보를 부여하는 것을 특징으로 하는 방법.
  9. 제2항에 있어서,
    복수의 래스터 커맨드들을 병합하는 단계는 상기 복합 문서의 페이지 단위로 수행되는 것을 특징으로 하는 방법.
  10. 제1항 내지 제9항 중의 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  11. 이미지 객체를 포함하는 복합 문서에 대한 인쇄 요청을 수신하는 입출력 장치;
    상기 복합 문서에 대응되는 데이터 중에서 상기 이미지 객체에 대응되는 부분들을 병합하고, 상기 이미지 객체의 화질을 개선한 후, 상기 복합 문서에 대응되는 데이터를 프린터 제어 언어로 인코딩하는 제어부; 및
    상기 인코딩된 복합 문서에 대응되는 데이터를 화상형성장치로 전송하는 네트워크 인터페이스를 포함하는 장치.
  12. 제11항에 있어서,
    상기 제어부는, 상기 복합 문서에 대한 프린팅 커맨드를 수신하고, 상기 프린팅 커맨드 중에서 상기 이미지 객체에 대응되는 복수의 래스터 커맨드들을 병합한 후, 상기 병합된 래스터 커맨드에 화질 개선 알고리즘을 적용하는 것을 특징으로 하는 장치.
  13. 제12항에 있어서,
    상기 제어부는, 상기 복수의 래스터 커맨드들 각각에 대하여 소스 이미지와 데스티네이션 이미지의 확대/축소 비율을 산출하고, 상기 산출된 확대/축소 비율이 일치하는 래스터 커맨드들을 병합하는 것을 특징으로 하는 장치.
  14. 제12항에 있어서,
    상기 제어부는, 상기 복수의 래스터 커맨드들의 데스티네이션 이미지의 위치를 비교함으로써 서로 인접한 래스터 커맨드들을 선택하고, 상기 선택된 래스터 커맨드들을 병합하는 것을 특징으로 하는 장치.
  15. 제12항에 있어서,
    상기 제어부는, 상기 복수의 래스터 커맨드들간의 중첩되는 영역의 픽셀 값을 비교하고, 상기 중첩되는 영역의 픽셀 값이 일치하는 래스터 커맨드들을 병합하는 것을 특징으로 하는 장치.
  16. 제12항에 있어서,
    상기 제어부는, 상기 병합된 래스터 커맨드들에 상기 화질 개선 알고리즘을 적용한 후에, 상기 병합된 래스터 커맨드들을 다시 분할하는 것을 특징으로 하는 장치.
  17. 제16항에 있어서,
    상기 제어부는, 상기 래스터 커맨드가 병합되기 전의 상기 프린팅 커맨드에 포함된 커맨드들의 순서에 기초하여 상기 병합된 래스터 커맨드를 분할하는 것을 특징으로 하는 장치.
  18. 제16항에 있어서,
    상기 제어부는, 상기 병합된 래스터 커맨드의 그룹에 그룹 ID를 부여하고, 상기 병합된 래스터 커맨드로부터 다시 분할되는 래스터 커맨드에는 그룹 ID, 그룹에 포함된 커맨드의 개수 및 상기 다시 분할되는 래스터 커맨드의 그룹 내에서의 위치 등을 포함하는 그룹 정보를 부여하는 것을 특징으로 하는 장치.
  19. 제12항에 있어서,
    상기 제어부는, 상기 복합 문서의 페이지 단위로 상기 복수의 래스터 커맨드들을 병합하는 것을 특징으로 하는 장치.
KR1020160021309A 2016-02-23 2016-02-23 복합 문서에 포함된 이미지 객체의 화질 개선 방법 및 이를 수행하기 위한 장치 KR20170099211A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020160021309A KR20170099211A (ko) 2016-02-23 2016-02-23 복합 문서에 포함된 이미지 객체의 화질 개선 방법 및 이를 수행하기 위한 장치
US15/424,353 US10169688B2 (en) 2016-02-23 2017-02-03 Method of enhancing quality of image object included in compound document and apparatus for performing the method
EP17154849.8A EP3211519B1 (en) 2016-02-23 2017-02-06 Method of enhancing quality of image object included in compound document and apparatus for performing method
CN201710099796.4A CN107102827B (zh) 2016-02-23 2017-02-23 改善图像对象的质量的方法以及执行该方法的设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160021309A KR20170099211A (ko) 2016-02-23 2016-02-23 복합 문서에 포함된 이미지 객체의 화질 개선 방법 및 이를 수행하기 위한 장치

Publications (1)

Publication Number Publication Date
KR20170099211A true KR20170099211A (ko) 2017-08-31

Family

ID=58094161

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160021309A KR20170099211A (ko) 2016-02-23 2016-02-23 복합 문서에 포함된 이미지 객체의 화질 개선 방법 및 이를 수행하기 위한 장치

Country Status (4)

Country Link
US (1) US10169688B2 (ko)
EP (1) EP3211519B1 (ko)
KR (1) KR20170099211A (ko)
CN (1) CN107102827B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180067221A (ko) * 2016-12-12 2018-06-20 에이치피프린팅코리아 주식회사 인쇄 데이터를 프린터로 전송하는 호스트 디바이스 및 호스트 디바이스가 인쇄 데이터를 인코딩하는 방법
CN109919941A (zh) * 2019-03-29 2019-06-21 深圳市奥特立德自动化技术有限公司 内螺纹缺陷检测方法、装置、系统、设备及介质
JP7325308B2 (ja) * 2019-11-19 2023-08-14 ルネサスエレクトロニクス株式会社 画像処理装置及び画像処理方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219149B1 (en) * 1997-04-01 2001-04-17 Fuji Xerox Co., Ltd. Print processing apparatus
US5999710A (en) * 1997-06-17 1999-12-07 Hewlett-Packard Company Merge plane generation for a data processing pipeline
JP3246415B2 (ja) * 1997-10-17 2002-01-15 日本電気株式会社 プリンタ制御方式およびプリンタ制御プログラムを記録した記録媒体
US6791711B1 (en) * 1998-06-24 2004-09-14 Canon Kabushiki Kaisha Image processing method, image processing apparatus, and recording medium
JP3619143B2 (ja) * 1999-11-18 2005-02-09 キヤノン株式会社 画像処理装置およびその方法
US7609402B2 (en) * 2001-01-19 2009-10-27 Flexiworld, Inc. Methods for universal data output
GB0124630D0 (en) * 2001-10-13 2001-12-05 Picsel Res Ltd "Systems and methods for generating visual representations of graphical data and digital document processing"
DE10204751B4 (de) * 2002-02-06 2005-03-03 Heidelberger Druckmaschinen Ag Verfahren zur Konvertierung eines Linework Datenformats in das Format einer Seitenbeschreibungssprache
JP2006093898A (ja) * 2004-09-21 2006-04-06 Fuji Xerox Co Ltd 画像形成方法及び画像形成装置
US8693059B2 (en) * 2005-09-16 2014-04-08 Ricoh Production Print Solutions Printer controlled dynamically altered N-UP imaging
JP2007206920A (ja) * 2006-02-01 2007-08-16 Sony Corp 画像処理装置および方法、検索装置および方法、プログラム、並びに記録媒体
JP4747903B2 (ja) 2006-03-28 2011-08-17 セイコーエプソン株式会社 印刷装置
US20100265313A1 (en) * 2009-04-17 2010-10-21 Sony Corporation In-camera generation of high quality composite panoramic images
US8743424B2 (en) 2010-06-18 2014-06-03 Hewlett-Packard Development Company, L.P. Pre-print enhancement of a raster image
JP2012048381A (ja) * 2010-08-25 2012-03-08 Canon Inc 画像処理装置、画像処理方法及びプログラム
JP6139830B2 (ja) * 2011-11-07 2017-05-31 キヤノン株式会社 印刷装置及びその制御方法
CN103927767B (zh) 2014-04-18 2018-05-04 北京智谷睿拓技术服务有限公司 图像处理方法及图像处理装置
US9852531B2 (en) 2014-07-11 2017-12-26 Samsung Electronics Co., Ltd. Electronic apparatus and method for controlling the same
JP6464695B2 (ja) * 2014-11-25 2019-02-06 ブラザー工業株式会社 画像処理装置、および、コンピュータプログラム

Also Published As

Publication number Publication date
CN107102827B (zh) 2021-05-14
EP3211519B1 (en) 2021-03-31
US20170243093A1 (en) 2017-08-24
EP3211519A1 (en) 2017-08-30
CN107102827A (zh) 2017-08-29
US10169688B2 (en) 2019-01-01

Similar Documents

Publication Publication Date Title
US8352856B2 (en) Systems and methods to resize document content
US8659793B2 (en) Image processing apparatus and image processing method
JP5596938B2 (ja) 画像処理装置、画像処理方法、及びプログラム
US7680358B2 (en) Image processing apparatus and control method thereof, and program
US8659620B2 (en) Methods and apparatus for rendering images
US8654147B2 (en) Apparatus for generating raster images, raster image generating method, and storage medium
US20090303550A1 (en) Image processing apparatus and image processing method
KR101869302B1 (ko) 래스터 이미지 변환 장치, 화상독취장치, 래스터 이미지 변환 방법 및 컴퓨터 판독가능 기록매체
CN107102827B (zh) 改善图像对象的质量的方法以及执行该方法的设备
JP5893379B2 (ja) 画像圧縮装置、画像圧縮方法、コンピュータプログラム
JP2017024321A (ja) 画像処理装置、画像形成装置及び画像処理時間予測方法及びプログラム
US9716810B2 (en) Image processing apparatus configured to perform smoothing based on analysis of PDL data, and storage medium storing program therefor
JP2008042345A (ja) 画像処理方法、画像処理装置
JP2014002591A (ja) 画像処理装置、画像処理方法、コンピュータプログラム
US9672454B2 (en) Image processing apparatus for rendering plurality of objects by dividing plurality of objects into plurality of groups, and image processing method
US10359974B2 (en) Printing apparatus, method for estimating a time required for a rendering process, and storage medium
JP2015075839A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2019111677A (ja) 画像処理装置、画像処理装置の制御方法、画像形成装置およびプログラム
JP6512763B2 (ja) 情報処理装置、情報処理方法、プログラム
JP2007081886A (ja) 描画処理装置
Safonov et al. Scanned Text Vectorization
JP2019077133A (ja) 画像形成装置、画像形成方法、プログラム
JP2019074916A (ja) ホスト装置、システム、方法、及びプログラム
JP2013091222A (ja) 画像形成処理装置及び画像処理方法
AU2005201932A1 (en) Parametric patch colour blend rendering

Legal Events

Date Code Title Description
N231 Notification of change of applicant