KR20180067221A - 인쇄 데이터를 프린터로 전송하는 호스트 디바이스 및 호스트 디바이스가 인쇄 데이터를 인코딩하는 방법 - Google Patents

인쇄 데이터를 프린터로 전송하는 호스트 디바이스 및 호스트 디바이스가 인쇄 데이터를 인코딩하는 방법 Download PDF

Info

Publication number
KR20180067221A
KR20180067221A KR1020160168710A KR20160168710A KR20180067221A KR 20180067221 A KR20180067221 A KR 20180067221A KR 1020160168710 A KR1020160168710 A KR 1020160168710A KR 20160168710 A KR20160168710 A KR 20160168710A KR 20180067221 A KR20180067221 A KR 20180067221A
Authority
KR
South Korea
Prior art keywords
raster
command
host device
predetermined
classifying
Prior art date
Application number
KR1020160168710A
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 KR1020160168710A priority Critical patent/KR20180067221A/ko
Priority to CN201780051512.2A priority patent/CN109643221B/zh
Priority to EP17880048.8A priority patent/EP3475804A4/en
Priority to BR112019012023-8A priority patent/BR112019012023A2/pt
Priority to PCT/KR2017/014519 priority patent/WO2018110931A1/en
Priority to US16/339,952 priority patent/US10872280B2/en
Publication of KR20180067221A publication Critical patent/KR20180067221A/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
    • 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
    • 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/1856Generation of the printable image characterized by its workflow
    • G06K15/1861Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time
    • G06K15/1865Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time by compressing the rasterized print data
    • 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/1211Improving printing performance
    • 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/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
    • 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/1247Job translation or job parsing, e.g. page banding by conversion to printer ready 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/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • G06F3/1262Job scheduling, e.g. queuing, determine appropriate device by grouping or ganging jobs
    • 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
    • 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/1297Printer code translation, conversion, emulation, compression; Configuration of printer parameters
    • 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
    • G06K15/184Rasterization from compressed bitmap data
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3066Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • H03M7/707Structured documents, e.g. XML

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)
  • Mathematical Physics (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Record Information Processing For Printing (AREA)

Abstract

호스트 디바이스에서 인쇄 데이터를 인코딩하는 방법은, 복합 문서에 대한 인쇄 요청을 수신하는 단계; 복합 문서에 포함된 오브젝트를 오브젝트 속성 정보에 기초하여 소정의 그룹으로 분류하는 단계; 소정의 그룹을 기 설정된 압축 방식에 따라 각각 압축하는 단계; 및 압축된 그룹을 병합하여 화상 형성 장치로 전송하는 단계를 포함한다.

Description

인쇄 데이터를 프린터로 전송하는 호스트 디바이스 및 호스트 디바이스가 인쇄 데이터를 인코딩하는 방법{HOST DIVICE TRANSMITTING PRINT DATA TO PRINTER AND METHOD FOR ENCODING PRINT DATA BY HOST DEVICE}
인쇄 데이터를 프린터로 전송하는 호스트 디바이스 및 호스트 디바이스가 인쇄 데이터를 인코딩하는 방법에 관한다.
프린터는 PC 또는 모바일 단말과 같은 호스트 디바이스로부터 인쇄 데이터를 수신하여 문서를 인쇄한다. 프린터의 인쇄 데이터 처리 부하를 줄이기 위하여, 호스트 디바이스에서 인쇄 데이터를 비트맵(bitmap) 이미지 데이터로 변환하는 방식이 Host Based Printing 방식이다.
Host Based Printing 방식은 호스트 디바이스와 프린터의 연산 부하가 적절하게 분배되어 인쇄 데이터를 빠르게 처리하는데 유리하다. 그러나, Host Based Printing 방식은 호스트 디바이스에서 프린터로 전송해야 하는 데이터의 크기가 매우 크기 때문에 전송 부하가 커지는 단점이 있다.
인쇄 데이터를 프린터로 전송하는 호스트 디바이스 및 호스트 디바이스가 인쇄 데이터를 인코딩하는 방법을 제공한다. 또한, 이 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기로간 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제 1 측면은 호스트 디바이스에서 인쇄 데이터를 인코딩하는 방법에 있어서, 복합 문서에 대한 인쇄 요청을 수신하는 단계; 복합 문서에 포함된 오브젝트를 오브젝트 속성 정보에 기초하여 소정의 그룹으로 분류하는 단계; 소정의 그룹을 기 설정된 압축 방식에 따라 각각 압축하는 단계; 및 압축된 그룹을 병합하여 화상 형성 장치로 전송하는 단계를 포함하는 방법을 제공할 수 있다.
또한, 본 개시의 제2 측면은, 사용자 입력을 수신하는 입출력부; 화상 형성 장치와 데이터를 송신하는 통신부; 메모리; 및 상기 입출력부를 통해 사용자로부터 복합 문서에 대한 인쇄 요청을 수신하고, 상기 복합 문서에 포함된 오브젝트를 오브젝트 속성 정보에 기초하여 소정의 그룹으로 분류하고, 상기 소정의 그룹을 기 설정된 압축 방식에 따라 각각 압축하고, 상기 압축된 그룹을 병합하여 화상 형성 장치로 전송하는 제어부를 포함하는, 호스트 디바이스를 제공할 수 있다.
또한, 본 개시의 제3 측면은, 제1 측면의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
전술한 본 개시의 과제 해결 수단에 의하면, 호스트 디바이스는 네트워크를 통해서 프린터로 송신되는 데이터의 크기를 줄여, 문서 출력 속도를 높이고, 프린터 메모리의 부하를 줄일 수 있다. 또한, 인쇄 데이터를 포함된 그라디언트 값에 따라 압축 방식을 결정하여 인쇄 화질 손실을 막을 수 있다.
도 1은 본 개시의 일 실시 예에 따른 호스트 디바이스를 도시한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 인쇄 데이터 인코딩 및 디코딩 방법을 수행하기 위한 호스트 디바이스 및 화상 형성 장치를 도시한 도면이다.
도 3은 본 개시의 일 실시 예에 따른 호스트 디바이스가 인쇄 데이터를 인코딩하는 방법의 흐름도이다.
도 4는 본 개시의 일 실시 예에 따른 호스트 디바이스가 프린팅 커맨드를 인코딩하는 방법의 흐름도이다.
도 5는 본 개시의 일 실시 예에 따른 호스트 디바이스가 오브젝트 태그에 따라 래스터 커맨드를 분류하는 방법의 흐름도이다.
도 6은 본 개시의 일 실시 예에 따른 호스트 디바이스가 오브젝트 태그에 따라 래스터 커맨드를 분류하는 예시를 나타낸 도면이다.
도 7은 본 개시의 일 실시 예에 따른 호스트 디바이스가 오브젝트 속성 정보에 기초하여 래스터 오브젝트를 분류하는 예시를 나타낸 도면이다.
도 8은 본 개시의 일 실시 예에 따른 호스트 디바이스가 비트맵 이미지 데이터를 인덱스 색상 데이터로 변환하는 예시를 나타낸 도면이다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시 예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서 "화상 형성 작업(image forming job)"이란 화상의 형성 또는 화상 파일의 생성/저장/전송 등과 같이 화상과 관련된 다양한 작업들(e.g. 인쇄, 스캔 또는 팩스)을 의미할 수 있으며, "작업(job)"이란 화상 형성 작업을 의미할 뿐 아니라, 화상 형성 작업의 수행을 위해서 필요한 일련의 프로세스들을 모두 포함하는 의미일 수 있다.
또한, "화상 형성 장치"란 프린터(printer), 스캐너(scanner), 팩스기(fax machine), 복합기(multi-function printer, MFP) 또는 디스플레이 장치 등과 같이 화상 형성 작업을 수행할 수 있는 모든 장치들을 의미할 수 있다.
또한, "호스트 디바이스(host device)"란 PC, 태블릿 PC, 휴대폰, 스마트폰(smart phone), PDA(Personal Digital Assistants), 및 PMP(Portable Multimedia Player) 등과 같이 컨텐츠를 화상 형성 장치로 전송할 수 있는 모든 장치들을 의미할 수 있다.
또한, "하드 카피(hard copy)"란 종이 등과 같은 인쇄 매체에 화상을 출력하는 동작을 의미하며, "소프트 카피(soft copy)"란 TV 또는 모니터 등과 같은 디스플레이 장치에 화상을 출력하는 동작을 의미할 수 있다.
또한, "컨텐츠"란 사진, 이미지 또는 문서 파일 등과 같이 화상 형성 작업의 대상이 되는 모든 종류의 데이터를 의미할 수 있다.
또한, "인쇄 데이터"란 프린터에서 인쇄 가능한 포맷으로 변환된 데이터를 의미할 수 있다.
또한, "스캔 파일"이란 스캐너에서 화상을 스캔하여 생성한 파일을 의미할 수 있다.
또한, "사용자"란 화상 형성 장치를 이용하여, 또는 화상 형성 장치와 유무선으로 연결된 디바이스를 이용하여 화상 형성 작업과 관련된 조작을 수행하는 사람을 의미할 수 있다. 또한, "관리자"란 화상 형성 장치의 모든 기능 및 시스템에 접근할 수 있는 권한을 갖는 사람을 의미할 수 있다. "관리자"와 "사용자"는 동일한 사람일 수도 있다.
본 명세서에서, 인쇄 데이터를 프린터로 전송하는 호스트 디바이스 및 호스트 디바이스가 인쇄 데이터를 인코딩하는 방법을 자세하게 설명하기에 앞서, "복합 문서(compound document)" 및 그로부터 생성되는 "프린팅 커맨드(printing command)"에 대해서 설명한다.
"복합 문서"란 복수의 타입의 오브젝트를 포함하는 문서로 정의할 수 있다. 오브젝트는 인쇄 데이터를 구성하는 사진, 글자, 도형 등의 각각의 인쇄 대상을 나타낸다. 이하에서는, 텍스트 오브젝트, 그래픽 오브젝트, 및 래스터 오브젝트를 포함하는 복합 문서를 예를 들어 설명한다.
예를 들어, 텍스트 오브젝트는 문자, 숫자, 기호 등으로 구성될 수 있다. 또한, 그래픽 오브젝트는 선, 도형, 표, 및 차트 등으로 구성될 수 있고, 래스터 오브젝트는 사진, 및 그림 등으로 구성될 수 있다.
복합 문서로부터 생성되는 "프린팅 커맨드"는 복합 문서에 포함된 복수의 타입의 객체들 각각에 대응되는 커맨드를 포함할 수 있다. 예를 들어, 복합 문서가 텍스트 오브젝트, 그래픽 오브젝트, 및 이미지 오브젝트를 포함한다면, 프린팅 커맨드는 텍스트 커맨드(text command), 그래픽 커맨드(graphic command) 및 래스터 커맨드(raster command)를 포함할 수 있다.
호스트 디바이스의 어플리케이션은 복합 문서에 대한 인쇄 요청을 수신하면, OS의 표준 함수를 이용하여 프린팅 커맨드를 생성하여 호스트 디바이스의 프린터 드라이버에게 전송할 수 있다. 호스트 디바이스의 프린터 드라이버는 수신한 프린팅 커맨드를 프린터 제어 언어(printer control language, 이하 PCL)로 인코딩(encoding)하여 프린터로 전송할 수 있다.
이하에서는 호스트 디바이스가 프린팅 커맨드를 인코딩하여 프린터로 전송하는 실시 예들에 대해서 설명한다.
도 1은 본 개시의 일 실시 예에 따른 호스트 디바이스를 도시한 도면이다.
도 1을 참조하면, 일 실시 예에 따라 인쇄 데이터를 인코딩하는 방법을 수행하기 위한 호스트 디바이스(100)는 입출력부(110), 제어부(120), 통신부(130), 및 메모리(140)를 포함할 수 있다.
입출력부(110)는 사용자로부터 입력을 수신하기 위한 입력부와 수신한 입력에 대한 처리 결과를 표시하기 위한 출력부를 포함할 수 있다.
예를 들어, 입출력부는, 키보드, 마우스, 물리 버튼, 터치 스크린, 카메라 또는 마이크 등과 같이 다양한 형태의 사용자 입력을 수신할 수 있는 장치들을 포함할 수 있다. 또한, 출력부는, 예를 들어, 디스플레이 패널 또는 스피커 등을 포함할 수 있다. 다만, 이에 한정되지 않고 입출력부(110)는 다양한 입출력을 지원하는 장치를 포함할 수 있다.
제어부(120)는 호스트 디바이스(100)의 전체적인 동작을 제어하며, CPU 등과 같은 적어도 하나의 프로세서를 포함할 수 있다. 제어부(120)는 입출력부(110)를 통해 수신한 사용자 입력에 대응되는 동작을 수행하도록 호스트 디바이스(100)에 포함된 다른 구성들을 제어할 수 있다.
예를 들어, 제어부(120)는 연산 처리를 수행하는 구성으로서 입출력부(110)로부터 수신한 제어 명령에 따라서, 메모리(140)에 접근하여 데이터를 읽어와서 연산을 수행할 수 있다.
또한, 제어부(120)는 메모리(140)에 저장된 프로그램을 실행시키거나, 메모리(140)에 저장된 파일을 읽어오거나, 새로운 파일을 메모리(140)에 저장할 수도 있다.
일 실시 예에서, 제어부(120)는 입출력부(110)를 통해 사용자로부터 복합 문서에 대한 인쇄 요청을 수신할 수 있다. 또한, 제어부(120)는 상기 복합 문서에 대한 프린팅 커맨드를 수신할 수 있다.
또한, 제어부(120)는 복합 문서에 포함된 오브젝트를 오브젝트 속성 정보에 기초하여 소정의 그룹으로 분류할 수 있다. 또한, 제어부(120)는 프린팅 커맨드를 프린팅 커맨드에 대응하는 오브젝트 속성 정보에 기초하여 소정의 그룹으로 분류할 수 있다.
또한, 제어부(120)는 프린팅 커맨드 중에서 래스터 오브젝트에 대응하는 래스터 커맨드를 래스터 오브젝트의 오브젝트 속성 정보에 기초하여 소정의 그룹으로 분류할 수 있다. 예를 들어, 제어부(120)는 래스터 커맨드를 래스터 오브젝트에 사용된 색상의 수, 래스터 오브젝트의 그라디언트 값, 래스터 오브젝트의 확대 인쇄 비율, 또는 래스터 오브젝트와 인쇄 데이터에 포함된 배경 오브젝트 사이의 면적 비율 등에 따라 분류할 수 있다.
또한, 제어부(120)는 소정의 그룹을 기 설정된 압축 방식에 따라 각각 압축할 수 있다. 제어부(120)는 소정의 그룹 중 적어도 하나의 그룹을 YCC 변환을 하지 않고, 손실 압축 방식에 따라 압축할 수 있다.
또한, 제어부(120)는 소정의 그룹 중 적어도 하나의 그룹에 포함된 비트맵 이미지 데이터를 사용된 색상의 수에 기초하여 인덱스 색상 데이터로 변환하고. 인덱스 색상 데이터를 압축할 수 있다.
또한, 제어부(120)는 압축된 그룹을 병합하여 화상 형성 장치(200)로 전송할 수 있다.
통신부(130)는 호스트 디바이스(100)가 외부의 다른 장치 또는 인터넷과 유무선으로 통신을 수행할 수 있도록 하는 구성으로서, 특히 호스트 디바이스(100)는 통신부(130)를 통해 화상 형성 장치와 유무선으로 통신할 수 있다.
이를 위해, 통신부(130)는 다양한 유무선 통신 방법 중 적어도 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들어, 통신 모듈은 칩셋(chipset)의 형태일 수도 있고, 또는 통신에 필요한 정보를 포함하는 스티커/바코드(e.g. NFC tag를 포함하는 스티커)등일 수도 있다.
무선 통신은, 예를 들어, Wi-Fi(Wireless Fidelity), Wi-Fi Direct, 블루투스(Bluetooth), UWB(Ultra Wide Band) 또는 NFC(Near Field Communication) 중 적어도 하나를 포함할 수 있다. 유선 통신은, 예를 들어, USB 또는 HDMI(High Definition Multimedia Interface) 중 적어도 하나를 포함할 수 있다.
메모리(140)는 제어부(120)가 연산을 수행하는 동안 필요한 프로그램 등의 데이터가 저장되는 공간이다. 제어부(120)는 메모리(140)에 접근하여 저장된 프로그램 등의 데이터를 이용하여 연산을 수행할 수 있다. 제어부(120)는 특정 연산을 수행하는 동안 필요한 데이터를 메모리(140)에 임시적으로 저장해놓고 사용할 수도 있다.
또한, 메모리(140)에는 OS, 어플리케이션 및 프린터 드라이버가 설치될 수 있다. 어플리케이션은 문서의 생성 및 편집을 지원하는 프로그램에 해당될 수 있다. 프린터 드라이버는 프린팅 커맨드를 PCL로 변환하기 위해 화상 형성 장치 제조사에서 제공하는 프로그램에 해당될 수 있다.
제어부(120)가 인쇄 데이터를 인코딩하는 구체적인 방법은 아래에서 예시 도면들을 참조하여 자세하게 설명하기로 한다.
도 2는 본 개시의 일 실시 예에 따른 인쇄 데이터 인코딩 및 디코딩 방법을 수행하기 위한 호스트 디바이스 및 화상 형성 장치를 도시한 도면이다.
도 2를 참조하면, 도 1에 도시된 바와 같이, 호스트 디바이스(100)는, 입출력부(110), 제어부(120), 통신부(130), 및 메모리(140)를 포함할 수 있다. 호스트 디바이스(100)의 입출력부(110), 제어부(120), 통신부(130), 및 메모리(140)에 대하여, 도 1에서 설명한 내용과 동일한 내용은 도 2에서 생략하기로 한다.
호스트 디바이스(100)로부터 수신된 인쇄 데이터를 디코딩하는 방법을 수행하기 위한 화상 형성 장치(200)는 입출력부(210), 제어부(220), 통신부(230), 메모리(240), 및 화상 형성 작업부(250)를 포함할 수 있다. 또한, 도시되지는 않았으나, 화상 형성 장치(200)는 각 구성들에 전원을 공급하기 위한 전원부를 더 포함할 수도 있다.
입출력부(210)는 사용자로부터 화상 형성 작업의 수행을 위한 입력 등을 수신하기 위한 입력부와, 화상 형성 작업의 수행 결과 또는 화상 형성 장치(200)의 상태 등의 정보를 표시하기 위한 출력부를 포함할 수 있다. 예를 들어, 입출력부(210)는 사용자 입력을 수신하는 조작 패널(operation panel) 및 화면을 표시하는 디스플레이 패널(display panel) 등을 포함할 수 있다.
구체적으로, 입력부는, 예를 들어, 키보드, 물리 버튼, 터치 스크린, 카메라 또는 마이크 등과 같이 다양한 형태의 사용자 입력을 수신할 수 있는 장치들을 포함할 수 있다. 또한, 출력부는, 예를 들어, 디스플레이 패널 또는 스피커 등을 포함할 수 있다. 다만, 이에 한정되지 않고 입출력부(110)는 다양한 입출력을 지원하는 장치를 포함할 수 있다.
제어부(220)는 화상 형성 장치(200)의 전체적인 동작을 제어하며, CPU 등과 같은 프로세서를 포함할 수 있다. 제어부(220)는 입출력부(210)를 통해 수신한 사용자 입력에 대응되는 동작을 수행하도록 화상 형성 장치(200)에 포함된 다른 구성들을 제어할 수 있다.
일 실시 예에서, 제어부(220)는 호스트 디바이스(100)로부터 수신된 데이터의 병합을 해제할 수 있다.
또한, 제어부(220)는 호스트 디바이스(100)로부터 수신된 데이터의 압축을 해제할 수 있다. 제어부(220)는 호스트 디바이스(100)로부터 수신된 소정의 압축 데이터 그룹에 대하여 각각 다른 압축 해제 방식을 이용하여 압축을 해제할 수 있다.
통신부(230)는 다른 디바이스 또는 네트워크와 유무선 통신을 수행할 수 있다. 이를 위해, 통신부(330)는 다양한 유무선 통신 방법 중 적어도 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들어, 통신 모듈은 칩셋(chipset)의 형태일 수도 있고, 또는 통신에 필요한 정보를 포함하는 스티커/바코드(e.g. NFC tag를 포함하는 스티커)등일 수도 있다.
무선 통신은, 예를 들어, Wi-Fi(Wireless Fidelity), Wi-Fi Direct, 블루투스(Bluetooth), UWB(Ultra Wide Band) 또는 NFC(Near Field Communication) 중 적어도 하나를 포함할 수 있다. 유선 통신은, 예를 들어, USB 또는 HDMI(High Definition Multimedia Interface) 중 적어도 하나를 포함할 수 있다.
통신부(230)는 호스트 디바이스(100)로부터 수신된 신호 또는 데이터를 제어부(220)로 전달하거나, 또는 제어부(220)에서 발생된 신호 또는 데이터를 호스트 디바이스(100)로 전송할 수 있다.
일 실시에 에서, 통신부(230)는 호스트 디바이스(100)로부터 압축되고 병합된 인쇄 데이터를 수신할 수 있다.
메모리(240)는 제어부(220)가 연산을 수행하는 동안 필요한 프로그램 등의 데이터가 저장되는 공간이다. 메모리(240)에는 어플리케이션과 같은 프로그램 및 파일 등과 같은 다양한 종류의 데이터가 설치 및 저장될 수 있다.
일 실시 예에서, 메모리(240)는 호스트 디바이스(100)로부터 수신된 데이터를 저장할 수 있다.
화상 형성 작업부(150)는 인쇄, 스캔 또는 팩스 등의 화상 형성 작업을 수행할 수 있다.
도 2를 참조하면, 화상 형성 작업부(150)는 인쇄부(151), 스캔부(152) 및 팩스부(153)를 포함하는 것으로 도시되었는데, 필요에 따라서 이들 중 일부 구성만을 포함하거나, 또는 다른 종류의 화상 형성 작업 수행을 위한 구성을 더 포함할 수도 있다.
인쇄부(151)는 전자 사진 방식, 잉크젯 방식, 열전사 방식 및 감열 방식 등 다양한 인쇄 방식에 의하여 기록매체에 화상을 형성할 수 있다.
스캔부(152)는 원고에 광을 조사하고, 반사되는 광을 수광하여 원고에 기록된 화상을 읽어들일 수 있다. 원고로부터 화상을 읽어들이는 이미지 센서로서, 예를 들어 CCD (Charge Coupled Device), CIS(contact type image sensor) 등이 채용될 수 있다. 스캔부(152)는 원고가 고정된 위치에 위치되고, 이미지 센서가 이동되면서 화상을 읽어들이는 플랫베드(flatbed) 구조, 이미지 센서가 고정된 위치에 위치되고 원고가 이송되는 원고이송(document feed) 구조와, 이들의 복합 구조를 가질 수 있다.
팩스부(153)의 경우, 화상을 스캔하기 위한 구성은 스캔부(152)와 공유할 수 있고, 수신한 파일을 인쇄하기 위한 구성은 인쇄부(151)와 공유할 수 있으며, 스캔 파일을 목적지로 전송하거나, 외부로부터 파일을 수신할 수 있다.
도 3은 본 개시의 일 실시 예에 따른 호스트 디바이스가 인쇄 데이터를 인코딩하는 방법의 흐름도이다.
도 3을 참조하면, 동작 S310에서, 호스트 디바이스는 복합 문서에 대한 인쇄 요청을 수신할 수 있다. 예를 들어, 호스트 디바이스는 텍스트 오브젝트, 그래픽 오브젝트, 및 래스터 오브젝트가 포함된 복합 문서에 대해 각각의 오브젝트에 대한 인쇄 요청을 수신할 수 있다.
동작 S320에서, 호스트 디바이스는 복합 문서에 포함된 오브젝트를 오브젝트 속성 정보에 기초하여 소정의 그룹으로 분류할 수 있다.
오브젝트 속성 정보는 각 오브젝트의 속성을 나타내는 정보이다. 예를 들어, 오브젝트 속성 정보는 오브젝트에 사용된 색상의 수, 오브젝트의 그라디언트 값, 오브젝트의 확대 인쇄 비율 등을 포함할 수 있으나, 이에 제한되지 않는다.
호스트 디바이스는 인쇄 데이터로부터 오브젝트 속성 정보를 획득할 수 있다. 예를 들어, 호스트 디바이스는 인쇄 데이터를 해석하여 인쇄 데이터를 구성하는 오브젝트들의 속성을 판단할 수 있고, 판단 결과에 따라 오브젝트 속성 정보를 획득할 수 있다.
호스트 디바이스는 각각의 오브젝트에 적절한 압축 방식이 적용되도록, 획득한 오브젝트의 속성 정보에 따라 복합 문서에 포함된 오브젝트를 소정의 그룹으로 분류할 수 있다.
동작 S330에서, 호스트 디바이스는 분류된 소정의 그룹을 기 설정된 압축 방식에 따라 각각 압축할 수 있다. 예를 들어, 호스트 디바이스는 소정의 그룹 중 적어도 하나의 그룹을 비손실 압축 방식으로 압축할 수 있고, 다른 하나의 그룹을 손실 압축 방식으로 압축할 수 있다.
비손실 압축 방식은 압축 전의 데이터와 압축 해제 후의 데이터가 동일한 압축 방식으로 정의할 수 있다. 비손실 압축 방식은 압축률이 낮고, 주로 압축률보다 데이터의 정확도를 높이는 것이 중요한 경우 사용될 수 있다. 예를 들어, DELTAROW 방식은 이미지 데이터의 비손실 압축 방식일 수 있다.
손실 압축 방식은 압축 전의 데이터와 압축 해제 후의 데이터가 동일하지 않은 압축 방식으로 정의할 수 있다. 손실 압축 방식은 압축률이 높을 수 있고, 주로 정확도보다 압축률을 높이는 것이 중요한 경우 사용될 수 있다. 예를 들어, JPEG 방식이 이미지 데이터의 손실 압축 방식일 수 있다.
또한, 손실 압축 방식은, YCC 변환 동작 유무에 따라, YCC 변환 동작을 포함하는 제1 손실 압축 방식과, YCC 변환 동작을 포함하지 않는 제2 손실 압축 방식으로 구분될 수 있다.
동작 S340에서, 호스트 디바이스는 각각 압축된 데이터를 병합하여 프린터로 전송할 수 있다.
도 4는 본 개시의 일 실시 예에 따른 호스트 디바이스가 프린팅 커맨드를 인코딩하는 방법의 흐름도이다.
도 4를 참조하면, 동작 S410에서, 호스트 디바이스는 복합 문서에 대한 프린팅 커맨드를 수신할 수 있다.
일 실시 예에서, 프린팅 커맨드는 복합 문서에 포함된 복수의 오브젝트 각각에 대응하는 커맨드를 포함할 수 있다. 예를 들어, 프린팅 커맨드는 텍스트 오브젝트에 대응하는 텍스트 커맨드, 그래픽 오브젝트에 대응하는 그래픽 커맨드, 및 래스터 오브젝트에 대응하는 래스터 커맨드를 포함할 수 있다.
일 실시 예에서, 호스트 디바이스는 텍스트 오브젝트, 그래픽 오브젝트, 및 래스터 오브젝트가 포함된 복합 문서에 대하여 텍스트 커맨드, 그래픽 커맨드, 및 래스터 커맨드를 수신할 수 있다.
동작 S420에서, 호스트 디바이스는 수신한 프린팅 커맨드가 텍스트 커맨드 또는 그래픽 커맨드인지 판단한다.
동작 S440에서, 수신한 프린팅 커맨드가 텍스트 커맨드 또는 그래픽 커맨드인 경우, 호스트 디바이스는 수신한 프린팅 커맨드를 비손실 압축 방식으로 압축할 수 있다.
동작 S430에서, 수신한 프린팅 커맨드가 래스터 커맨드인 경우, 호스트 디바이스는 래스터 커맨드를 래스터 오브젝트의 오브젝트 속성 정보에 기초하여 소정의 그룹으로 분류할 수 있다.
예를 들어, 호스트 디바이스는 래스터 오브젝트에 사용된 색상의 수, 래스터 오브젝트의 그라디언트 값, 래스터 오브젝트의 확대 인쇄 비율, 또는 래스터 오브젝트와 배경 오브젝트 사이의 면적 비율 등에 따라 래스터 오브젝트에 대응하는 래스터 커맨드를 분류할 수 있다.
호스트 디바이스가 래스터 커맨드를 분류하는 동작은 도 5에서 자세하게 설명한다.
동작 S440 내지 S460에서 호스트 디바이스는 분류된 소정의 그룹을 기 설정된 압축 방식에 따라 각각 압축할 수 있다.
일 실시 예에서, 호스트 디바이스는 텍스트 커맨드 또는 그래픽 커맨드를 비손실 압축 방식으로 압축할 수 있다.
또한, 호스트 디바이스는 래스터 커맨드를 분류된 그룹에 따라 각각 비손실 압축 방식, 제1 손실 압축 방식, 제2 손실 압축 방식으로 압축할 수 있다.
예를 들어, 제1 손실 압축 방식 JPEG 압축과 같은 손실 압축 방식일 수 있다. 제2 손실 압축 방식은, 손실 압축 방식 중에서 YCC 변환을 하지 않는 손실 압축 방식일 수 있다.
도 5는 본 개시의 일 실시 예에 따른 호스트 디바이스가 오브젝트 태그에 따라 래스터 커맨드를 분류하는 방법의 흐름도이다.
동작 S510에서, 호스트 디바이스는 복합 문서에 대한 프린팅 커맨드를 수신할 수 있다.
일 실시 예에서, 호스트 디바이스는 텍스트 오브젝트, 그래픽 오브젝트, 및 래스터 오브젝트가 포함된 복합 문서에 대하여 텍스트 커맨드, 그래픽 커맨드, 및 래스터 커맨드를 수신할 수 있다.
동작 S520에서, 호스트 디바이스는 인쇄 데이터를 비트맵 이미지 데이터로 변환할 수 있다. 예를 들어, 호스트 디바이스는 인쇄 요청이 수신된 경우, 인쇄 데이터를 비트맵 형식의 이미지로 변환하여 비트맵 이미지 데이터를 생성할 수 있다.
비트맵 형식의 이미지는 하나의 색상 값을 갖는 최소 단위인 픽셀(pixel)들의 집합이다. 예를 들어, 비트맵 형식의 이미지는 각 픽셀에 대하여 3바이트(byte)로 이루어진 하나의 색상 값을 가질 수 있고, 각 픽셀에 대한 색상 값들의 집합이 비트맵 이미지 데이터가 될 수 있다.
동작 S530에서, 호스트 디바이스는 변환된 비트맵 이미지 데이터에 프린팅 커맨드에 대응하는 오브젝트 태그를 추가할 수 있다.
오브젝트 태그는 오브젝트 속성 정보를 나타내는 1 바이트 값의 데이터로 정의할 수 있다. 호스트 디바이스는 오브젝트 속성 정보를 비트맵 이미지 데이터에 추가할 수 있도록, 오브젝트 속성 정보를 비트맵 이미지의 픽셀 단위로 추출할 수 있다. 예를 들어, 호스트 디바이스는 오브젝트 속성 정보를 비트맵 이미지 한 픽셀에 대하여 1 바이트 값으로 나타낼 수 있고, 해당 1 바이트 오브젝트 속성 정보가 오브젝트 태그일 수 있다.
호스트 디바이스는 변환된 비트맵 이미지 데이터에 오브젝트 태그를 추가할 수 있고, 오브젝트 태그가 추가된 비트맵 형식의 이미지는 각 픽셀에 대하여 4 바이트로 이루어진 하나의 색상 값을 가질 수 있다.
일 실시 예에서, 호스트 디바이스는 텍스트 오브젝트가 변환된 비트맵 이미지 데이터에는 텍스트 오브젝트 태그를 추가할 수 있고, 그래픽 오브젝트가 변환된 비트맵 이미지 데이터에는 그래픽 오브젝트 태그를 추가할 수 있다.
또한, 호스트 디바이스는 래스터 오브젝트가 변환된 비트맵 이미지 데이터에 각각의 래스터 오브젝트 속성에 따라 서로 다른 래스터 오브젝트 태그를 비트맵 이미지 데이터에 추가할 수 있다.
동작 S540에서, 호스트 디바이스는 비트맵 이미지 데이터를 추가된 오브젝트 태그에 따라 소정의 그룹으로 분류할 수 있다.
일 실시 예에서, 호스트 디바이스는 각각의 오브젝트에 적절한 압축 방식이 적용되도록, 오브젝트 태그에 따라 변환된 비트맵 이미지 데이터를 소정의 그룹으로 분류할 수 있다.
동작 S550에서, 호스트 디바이스는 소정의 그룹을 기 설정된 압축 방식에 따라 각각 압축할 수 있다.
예를 들어, 호스트 디바이스는 각각의 그룹을 비손실 압축 방식, 제1 손실 압축 방식 또는 제2 손실 압축 방식 중 어느 하나로 압축할 수 있다.
동작 S560에서, 호스트 디바이스는 압축된 비트맵 이미지 데이터를 병합하여, 프린터 명령어 형태로 변환할 수 있다.
동작 S570에서, 호스트 디바이스는 프린터 명령어 형태의 데이터를 화상 형성 장치로 전송할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 호스트 디바이스가 오브젝트 태그에 따라 래스터 커맨드를 분류하는 예시를 나타낸 도면이다.
도 6을 참조하면, 복합 문서(600)는 배경 오브젝트(601), 텍스트 오브젝트(602), 그래픽 오브젝트(603 내지 604), 래스터 오브젝트(605 내지 607) 등의 오브젝트들을 포함할 수 있다.
호스트 디바이스는 텍스트 오브젝트(602)에 대응하는 텍스트 커맨드, 그래픽 오브젝트(603 내지 604)에 대응하는 그래픽 커맨드, 래스터 오브젝트(605 내지 607)에 대응하는 래스터 커맨드를 수신할 수 있다.
호스트 디바이스는 각각의 오브젝트 속성 정보를 오브젝트 태그로 나타낼 수 있다. 예를 들어, 호스트 디바이스는 오브젝트 속성 정보를 비트맵 이미지 한 픽셀에 대하여 1 바이트 값으로 나타낼 수 있다.
각각의 오브젝트에 대응하는 오브젝트 태그는 오브젝트 태그 표(610)를 참조하여 설명한다.
예를 들어, 배경 오브젝트(601)에 대한 오브젝트 태그는 "0xFF"가 될 수 있다. 텍스트 오브젝트(602)에 대한 오브젝트 태그는 "0xFC"가 될 수 있다. 그래픽 오브젝트(603 내지 604)에 대한 오브젝트 태그는 "0xFD"가 될 수 있다. 래스터 오브젝트(605 내지 607)에 대한 오브젝트 태그는 "0xFE", "0x00", "0x01"가 될 수 있다. 그러나, 오브젝트 태그는 상술한 값에 제한되지 않고, 다양한 값이 될 수 있다.
오브젝트 태그는 인쇄 데이터를 비트맵 이미지 데이터로 변환하는 랜더링 과정에서 비트맵 이미지 데이터에 추가될 수 있다. 오브젝트 태그가 추가된 비트맵 형식의 이미지는 각 픽셀에 대하여 4 바이트로 이루어진 하나의 색상 값을 가질 수 있다.
오브젝트 태그에 따른 비트맵 이미지 데이터 분류는 비트맵 이미지 데이터 분류표(620)를 참조하여 설명한다.
호스트 디바이스는 오브젝트 태그에 따라 비트맵 이미지 데이터를 소정의 그룹으로 분류할 수 있다. 예를 들어, 호스트 디바이스는 오브젝트 태그를 이용하여 비트맵 이미지 데이터에 어떤 압축 방식을 적용해야 하는지 결정할 수 있다.
호스트 디바이스는 비트맵 이미지 데이터가 "0xFC", "0xFD", "0xFE", 또는"0xFF"인 오브젝트 태그를 포함하는 경우, 비트맵 이미지 데이터를 비손실 압축 그룹으로 분류할 수 있다. 또한, 호스트 디바이스는 비트맵 이미지 데이터가 "0x00"인 오브젝트 태그를 포함하는 경우, 비트맵 이미지 데이터를 제1 손실 압축 그룹으로 분류할 수 있다. 또한, 호스트 디바이스는 비트맵 이미지 데이터가 "0x01"인 오브젝트 태그를 포함하는 경우, 비트맵 이미지 데이터를 제2 손실 압축 그룹으로 분류할 수 있다.
도 7은 본 개시의 일 실시 예에 따른 호스트 디바이스가 오브젝트 속성 정보에 기초하여 래스터 오브젝트를 분류하는 예시를 나타낸 도면이다.
도 7을 참조하면, 복합 문서(700)는 배경 오브젝트(701), 텍스트 오브젝트(702), 그래픽 오브젝트(703 내지 704), 래스터 오브젝트(705 내지 707) 등의 오브젝트들을 포함할 수 있다.
도 7에 도시된 소정의 그룹(710 내지 730)에는 오브젝트 커맨드를 대신하여 오브젝트 커맨드에 대응하는 오브젝트를 도시하였다. 예를 들어, 비손실 압축 그룹(710)에 도시된 오브젝트(701 내지 705)는 각각 대응하는 오브젝트 커맨드를 나타낸다.
호스트 디바이스는 오브젝트에 대응하는 오브젝트 커맨드를 오브젝트 속성에 기초하여 소정의 그룹(710 내지 730)으로 분류할 수 있다. 호스트 디바이스는 오브젝트 속성을 고려하여 오브젝트 커맨드 각각에 대하여 적절한 압축 방식을 결정할 수 있다. 예를 들어, 호스트 디바이스는 결정된 압축 방식에 따라 오브젝트 커맨드를 비손실 압축 그룹(710), 제1 손실 압축 그룹(720), 및 제2 손실 압축 그룹(730)으로 분류할 수 있다.
일 실시 예에서, 호스트 디바이스는 사용된 색상의 수가 적은 오브젝트에 대응하는 오브젝트 커맨드를 비손실 압축 그룹(710)으로 분류할 수 있다. 예를 들어, 배경 커맨드, 텍스트 커맨드, 및 그래픽 커맨드를 비손실 압축 그룹(710)으로 분류할 수 있다.
호스트 디바이스는 래스터 커맨드를 래스터 오브젝트에 사용된 색상의 수, 오브젝트 내 색상의 변화 정도, 오브젝트의 확대 인쇄 비율, 래스터 오브젝트와 배경 오브젝트 사이의 면적 비율 등에 따라 소정의 그룹으로 분류할 수 있다.
호스트 디바이스는 래스터 오브젝트에 사용된 색상의 수에 따라 래스터 커맨드를 분류할 수 있다. 예를 들어, 래스터 오브젝트에 사용된 색상의 수가 임계 값 미만인 경우, 호스트 디바이스는 래스터 커맨드를 비손실 압축 그룹(710)으로 분류할 수 있다. 래스터 오브젝트에 사용된 색상의 수가 임계 값 이상인 경우, 호스트 디바이스는 래스터 커맨드를 손실 압축 그룹(720 내지 730)으로 분류할 수 있다.
예를 들어, 호스트 디바이스는 래스터 오브젝트(705)가 선과 도형만으로 이루어진 경우, 대응하는 래스터 커맨드를 비손실 압축 그룹(710)으로 분류할 수 있다. 또한, 래스터 오브젝트(706)가 복수의 색상으로 이루어진 경우, 대응하는 래스터 커맨드를 제1 손실 압축 그룹(720)으로 분류할 수 있다.
호스트 디바이스는 래스터 오브젝트의 그라디언트(gradient) 값에 따라 래스터 커맨드를 분류할 수 있다.
그라디언트 값은 오브젝트에 포함된 색상의 변화 정도를 나타내는 값으로 정의할 수 있다. 오브젝트에서 그라디언트 값은 인접한 두 픽셀들의 색상 값의 차이 값이다. 인접한 픽셀들의 색상이 유사할수록 그라디언트 값은 작고, 인접한 픽셀들의 색상이 상이할수록 그라디언트 값은 크다.
예를 들어, 래스터 오브젝트의 그라디언트 값이 임계 값 이상인 경우, 호스트 디바이스는 래스터 커맨드를 제1 손실 압축 그룹(720)으로 분류할 수 있다. 또는, 그라디언트 값이 임계 값 미만인 경우, 호스트 디바이스는 래스터 커맨드를 YCC 변환을 하지 않는 제2 손실 압축 그룹(730)으로 분류할 수 있다.
예를 들어, 호스트 디바이스는 래스터 오브젝트(707)가 16 이하의 그라디언트 값을 갖는 경우, 대응하는 래스터 커맨드를 제2 손실 압축 그룹(730)으로 분류할 수 있다.
호스트 디바이스는 래스터 오브젝트의 확대 인쇄 비율에 따라 래스터 커맨드를 분류할 수 있다. 예를 들어, 호스트 디바이스는 래스터 오브젝트의 확대 인쇄 비율이 임계 값 이상인 경우, 래스터 커맨드를 비손실 압축 그룹(710)으로 분류할 수 있다. 또는, 호스트 디바이스는 래스터 오브젝트의 확대 인쇄 비율이 임계 값 미만인 경우, 래스터 커맨드를 손실 압축 그룹(720 내지 730)으로 분류할 수 있다.
호스트 디바이스는 래스터 오브젝트와 배경 오브젝트의 면적 비율에 따라 래스터 커맨드를 분류할 수 있다. 예를 들어, 호스트 디바이스는 래스터 오브젝트가 배경 오브젝트 중에서 그려지는 면적을 계산하여 래스터 커맨드를 분류할 수 있다. 래스터 오브젝트와 배경 오브젝트의 면적 비율이 임계 값 이상인 경우, 호스트 디바이스는 래스터 커맨드를 손실 압축 그룹(720 내지 730)으로 분류할 수 있다. 또는, 호스트 디바이스는 래스터 오브젝트와 배경 오브젝트의 면적 비율이 임계 값 미만인 경우, 래스터 커맨드를 비손실 압축 그룹(710)으로 분류할 수 있다.
도 8은 본 개시의 일 실시 예에 따른 호스트 디바이스가 비트맵 이미지 데이터를 인덱스 색상 데이터로 변환하는 예시를 나타낸 도면이다.
호스트 디바이스는 인쇄 데이터를 비트맵 이미지 데이터(810)로 변환할 수 있다. 예를 들어, 호스트 디바이스는 인쇄 요청이 수신된 경우, 인쇄 데이터를 비트맵 형식의 이미지로 변환하여 비트맵 이미지 데이터(810)를 생성할 수 있다.
도 8을 참조하면, 호스트 디바이스는 변환된 비트맵 이미지 데이터(810)를 비트맵 이미지 데이터에 포함된 색상의 수에 기초하여 인덱스 색상 데이터(8로 변환할 수 있다. 인덱스 색상 데이터란 비트맵 이미지 데이터를 색상 값을 나타내는 인덱스 숫자로 표현한 데이터이다.
호스트 디바이스는 비트맵 이미지 데이터(810)에 사용된 색상의 수를 계산하여, 인덱스 색상을 결정할 수 있다. 호스트 디바이스가 인덱스 색상을 결정하는 동작은 인덱스 색상표(800)를 예를 들어 설명한다.
예를 들어, 호스트 디바이스는 "(253, 0, 0, 0)" 값을 갖는 색상을 "0"값을 갖는 인덱스 색상으로, "(255, 255, 255, 255)" 값을 갖는 색상을 "1"값을 갖는 인덱스 색상으로, "(254, 51, 255, 255)" 값을 갖는 색상을 "2"값을 갖는 인덱스 색상으로, "(254, 255, 0, 0)" 값을 갖는 색상을 "3"값을 갖는 인덱스 색상으로 결정할 수 있다.
호스트 디바이스는 비트맵 이미지 데이터(810)에 ?0" 내지 "3"의 인덱스 색상 값을 적용하여 픽셀의 값을 변환할 수 있다.
예를 들어, 호스트 디바이스는 픽셀의 값을 "(253, 0, 0, 0)"에서 "0"으로, "(255, 255, 255, 255)"에서 "1"로, "(254, 51, 255, 255)"에서 "2"로, "(254, 255, 0, 0)"에서 "3"으로 변환할 수 있다.
호스트 디바이스는 "0"내지 "3"의 값을 갖는 인접한 4개의 픽셀 값을 병합하여 2byte의 16 진수 값으로 변환할 수 있다.
예를 들어, 호스트 디바이스는 연속된 4개의 픽셀 값이"1, 1, 1, 1"인 경우, 4개의 픽셀 값을 2bit 표현하고 병합하여 2byte의 "01010101"값으로 표현할 수 있다. 호스트 디바이스는 2byte의 "01010101"값을 2byte의 "0x55"값으로 표현할 수도 있다.
또한, 호스트 디바이스는 연속된 4개의 픽셀 값이 "0, 1, 1, 1"인 경우, 4개의 픽셀 값을 bit로 표현하고 병합하여 2byte의 "00010101"값으로 표현할 수 있다. 호스트 디바이스는 2byte의 "00010101"값을 2byte의 "0x15"값으로 표현할 수도 있다.
호스트 디바이스는 비트맵 이미지 데이터에 사용된 색상의 값을 인덱스 숫자로 변환하여 데이터 크기를 줄일 수 있다. 예를 들어, 호스트 디바이스는 인덱스 색상을 이용하여 224byte의 비트맵 이미지 데이터(810)를 28byte의 인덱스 색상 데이터(830)로 변환할 수 있다.
호스트 디바이스는 생성된 인덱스 색상 데이터를 압축할 수 있다. 일 실시 예에서, 호스트 디바이스는 생성된 인덱스 색상 데이터를 비손실 압축 방식으로 압축할 수 있다.
한편, 상술된 실시 예들은 컴퓨터에 의하여 실행 가능한 명령어 및 데이터를 저장하는 컴퓨터로 읽을 수 있는 기록매체의 형태로 구현될 수 있다. 상기 명령어 및 데이터 중 적어도 하나는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다.
컴퓨터로 읽을 수 있는 기록매체란, 예를 들어 하드디스크 등과 같은 마그네틱 저장매체, CD 및 DVD 등과 같은 광학적 판독매체 등을 의미할 수 있으며, 네트워크를 통해 접근 가능한 서버에 포함되는 메모리를 의미할 수도 있다. 예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 호스트 디바이스(100)의 메모리(140) 및 입출력부(110)의 메모리 중 적어도 하나가 될 수도 있으며, 또는, 호스트 디바이스(100)와 네트워크를 통하여 화상 형성 장치(200)에 포함되는 메모리(240)가 될 수도 있다.

Claims (19)

  1. 호스트 디바이스에서 인쇄 데이터를 인코딩하는 방법에 있어서,
    복합 문서에 대한 인쇄 요청을 수신하는 단계;
    상기 복합 문서에 포함된 오브젝트를 오브젝트 속성 정보에 기초하여 소정의 그룹으로 분류하는 단계;
    상기 소정의 그룹을 기 설정된 압축 방식에 따라 각각 압축하는 단계; 및
    상기 압축된 그룹을 병합하여 화상 형성 장치로 전송하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 복합 문서에 포함된 오브젝트를 오브젝트 속성 정보에 기초하여 소정의 그룹으로 분류하는 단계는,
    상기 복합 문서에 대한 프린팅 커맨드를 수신하는 단계; 및
    상기 프린팅 커맨드를 상기 프린팅 커맨드에 대응하는 상기 오브젝트 속성 정보에 기초하여 상기 소정의 그룹으로 분류하는 단계를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 프린팅 커맨드를 상기 프린팅 커맨드에 대응하는 상기 오브젝트 속성 정보에 기초하여 상기 소정의 그룹으로 분류하는 단계는,
    상기 프린팅 커맨드 중에서 래스터 오브젝트에 대응하는 래스터 커맨드를 상기 래스터 오브젝트의 상기 오브젝트 속성 정보에 기초하여 상기 소정의 그룹으로 분류하는 단계를 포함하는, 방법.
  4. 제3항에 있어서,
    상기 래스터 커맨드를 상기 래스터 오브젝트의 상기 오브젝트 속성 정보에 기초하여 상기 소정의 그룹으로 분류하는 단계는,
    상기 래스터 커맨드를 상기 래스터 오브젝트에 사용된 색상의 수에 따라 분류하는 단계를 포함하는, 방법.
  5. 제3항에 있어서,
    상기 래스터 커맨드를 상기 래스터 오브젝트의 상기 오브젝트 속성 정보에 기초하여 상기 소정의 그룹으로 분류하는 단계는,
    상기 래스터 커맨드를 상기 래스터 오브젝트의 그라디언트 값에 따라 분류하는 단계를 포함하는, 방법.
  6. 제3항에 있어서,
    상기 래스터 커맨드를 상기 래스터 오브젝트의 상기 오브젝트 속성 정보에 기초하여 상기 소정의 그룹으로 분류하는 단계는,
    상기 래스터 커맨드를 상기 래스터 오브젝트의 확대 인쇄 비율에 따라 분류하는 단계를 포함하는, 방법.
  7. 제3항에 있어서,
    상기 래스터 커맨드를 상기 래스터 오브젝트의 상기 오브젝트 속성 정보에 기초하여 상기 소정의 그룹으로 분류하는 단계는,
    상기 래스터 오브젝트와 상기 인쇄 데이터를 구성하는 배경 오브젝트 사이의 면적 비율에 따라 분류하는 단계를 포함하는, 방법.
  8. 제1항에 있어서,
    상기 소정의 그룹을 기 설정된 압축 방식에 따라 각각 압축하는 단계는,
    상기 소정의 그룹 중 적어도 하나의 그룹을 YCC 변환을 하지 않고 손실 압축 방식에 따라 압축하는 단계를 포함하는, 방법.
  9. 제1항에 있어서,
    상기 소정의 그룹을 기 설정된 압축 방식에 따라 각각 압축하는 단계는,
    상기 소정의 그룹 중 적어도 하나의 그룹에 포함된 비트맵 이미지 데이터를 비트맵 이미지 데이터에 포함된 색상의 수에 기초하여 인덱스 색상 데이터로 변환하는 단계;
    상기 인덱스 색상 데이터를 압축하는 단계를 더 포함하는, 방법.
  10. 사용자 입력을 수신하는 입출력부;
    화상 형성 장치와 데이터를 송신하는 통신부; 및
    상기 입출력부를 통해 사용자로부터 복합 문서에 대한 인쇄 요청을 수신하고, 상기 복합 문서에 포함된 오브젝트를 오브젝트 속성 정보에 기초하여 소정의 그룹으로 분류하고, 상기 소정의 그룹을 기 설정된 압축 방식에 따라 각각 압축하고, 상기 통신부를 통해 상기 압축된 그룹을 병합하여 화상 형성 장치로 전송하는 제어부를 포함하는, 호스트 디바이스.
  11. 제10항에 있어서,
    상기 제어부는 상기 복합 문서에 대한 프린팅 커맨드를 수신하고, 상기 프린팅 커맨드를 상기 프린팅 커맨드에 대응하는 상기 오브젝트 속성 정보에 기초하여 상기 소정의 그룹으로 분류하는, 호스트 디바이스.
  12. 제11항에 있어서,
    상기 제어부는 상기 프린팅 커맨드 중에서 래스터 오브젝트에 대응하는 래스터 커맨드를 상기 래스터 오브젝트의 상기 오브젝트 속성 정보에 기초하여 상기 소정의 그룹으로 분류하는, 호스트 디바이스.
  13. 제12항에 있어서,
    상기 제어부는 상기 래스터 커맨드를 상기 래스터 오브젝트에 사용된 색상의 수에 따라 분류하는, 호스트 디바이스.
  14. 제12항에 있어서,
    상기 제어부는 상기 래스터 커맨드를 상기 래스터 오브젝트의 그라디언트 값에 따라 분류하는, 호스트 디바이스.
  15. 제12항에 있어서,
    상기 제어부는 상기 래스터 커맨드를 상기 래스터 오브젝트의 확대 인쇄 비율에 따라 분류하는, 호스트 디바이스.
  16. 제12항에 있어서,
    상기 제어부는 상기 래스터 오브젝트와 인쇄 데이터에 포함된 배경 오브젝트 사이의 면적 비율에 따라 분류하는, 호스트 디바이스.
  17. 제10항에 있어서,
    상기 제어부는 상기 소정의 그룹 중 적어도 하나의 그룹을 YCC 변환을 하지 않고 손실 압축 방식에 따라 압축하는, 호스트 디바이스.
  18. 제10항에 있어서,
    상기 제어부는 상기 소정의 그룹 중 적어도 하나의 그룹에 포함된 비트맵 이미지 데이터를 사용된 색상의 수에 기초하여 인덱스 색상 데이터로 변환하고, 상기 인덱스 색상 데이터를 압축하는, 호스트 디바이스.
  19. 제1항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020160168710A 2016-12-12 2016-12-12 인쇄 데이터를 프린터로 전송하는 호스트 디바이스 및 호스트 디바이스가 인쇄 데이터를 인코딩하는 방법 KR20180067221A (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020160168710A KR20180067221A (ko) 2016-12-12 2016-12-12 인쇄 데이터를 프린터로 전송하는 호스트 디바이스 및 호스트 디바이스가 인쇄 데이터를 인코딩하는 방법
CN201780051512.2A CN109643221B (zh) 2016-12-12 2017-12-12 通过主机装置编码打印数据和发送打印数据
EP17880048.8A EP3475804A4 (en) 2016-12-12 2017-12-12 CODING OF PRINT DATA AND TRANSMISSION OF PRINT DATA BY A HOST DEVICE
BR112019012023-8A BR112019012023A2 (pt) 2016-12-12 2017-12-12 codificação de dados de impressão e transmissão de dados de impressão por dispositivo hospedeiro
PCT/KR2017/014519 WO2018110931A1 (en) 2016-12-12 2017-12-12 Encoding print data and transmitting print data by host device
US16/339,952 US10872280B2 (en) 2016-12-12 2017-12-12 Grouping objects of a compound document and compressing the group using a compression method corresponding to the group

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160168710A KR20180067221A (ko) 2016-12-12 2016-12-12 인쇄 데이터를 프린터로 전송하는 호스트 디바이스 및 호스트 디바이스가 인쇄 데이터를 인코딩하는 방법

Publications (1)

Publication Number Publication Date
KR20180067221A true KR20180067221A (ko) 2018-06-20

Family

ID=62559654

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160168710A KR20180067221A (ko) 2016-12-12 2016-12-12 인쇄 데이터를 프린터로 전송하는 호스트 디바이스 및 호스트 디바이스가 인쇄 데이터를 인코딩하는 방법

Country Status (6)

Country Link
US (1) US10872280B2 (ko)
EP (1) EP3475804A4 (ko)
KR (1) KR20180067221A (ko)
CN (1) CN109643221B (ko)
BR (1) BR112019012023A2 (ko)
WO (1) WO2018110931A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813350B (zh) * 2020-05-29 2022-12-13 厦门汉印电子技术有限公司 一种打印数据发送方法、装置、设备及存储介质
US12075016B1 (en) 2023-12-11 2024-08-27 Ricoh Company, Ltd. Reordered multibit halftone processing with a threshold array

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539865A (en) * 1992-11-10 1996-07-23 Adobe Systems, Inc. Method and apparatus for processing data for a visual-output device with reduced buffer memory requirements
US5991515A (en) * 1992-11-10 1999-11-23 Adobe Systems Incorporated Method and apparatus for compressing and decompressing data prior to display
US7006099B2 (en) * 2000-08-15 2006-02-28 Aware, Inc. Cache system and method for generating uncached objects from cached and stored object components
US6853755B2 (en) 2001-03-28 2005-02-08 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive compression of scanned documents
US7200263B2 (en) * 2002-07-01 2007-04-03 Xerox Corporation Background suppression and color adjustment method
US8442311B1 (en) 2005-06-30 2013-05-14 Teradici Corporation Apparatus and method for encoding an image generated in part by graphical commands
US20070070375A1 (en) * 2005-09-22 2007-03-29 Sharp Laboratories Of America, Inc. Systems and methods for heuristics-based load balancing of hybrid PDL/raster printing
US7751633B1 (en) 2006-08-31 2010-07-06 Hewlett-Packard Development Company, L.P. Method for compressing an image
US8270716B2 (en) 2007-12-04 2012-09-18 Ricoh Company, Limited Selectively compressing picture and text areas of an image to maintain highest quality and effective compaction
KR20110061312A (ko) * 2009-12-01 2011-06-09 삼성전자주식회사 화상형성장치, 호스트장치 및 그 보안복사방법
US8345998B2 (en) * 2010-08-10 2013-01-01 Xerox Corporation Compression scheme selection based on image data type and user selections
RU2469400C1 (ru) 2011-11-17 2012-12-10 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ преобразования растрового изображения в метафайл
KR20160030701A (ko) * 2014-09-11 2016-03-21 삼성전자주식회사 인쇄 데이터를 프린터로 전송하는 호스트 디바이스 및 호스트 디바이스가 인쇄 데이터를 렌더링하는 방법
KR20170099211A (ko) * 2016-02-23 2017-08-31 에스프린팅솔루션 주식회사 복합 문서에 포함된 이미지 객체의 화질 개선 방법 및 이를 수행하기 위한 장치

Also Published As

Publication number Publication date
CN109643221B (zh) 2022-04-15
EP3475804A4 (en) 2020-03-04
WO2018110931A1 (en) 2018-06-21
CN109643221A (zh) 2019-04-16
US20200042843A1 (en) 2020-02-06
US10872280B2 (en) 2020-12-22
BR112019012023A2 (pt) 2019-11-12
EP3475804A1 (en) 2019-05-01

Similar Documents

Publication Publication Date Title
US10136128B2 (en) Cell-based compression with edge detection
US9514394B2 (en) Image forming apparatus capable of changing image data into document data, an image forming system, and an image forming method
US9891875B2 (en) Host device for transmitting print data to printer and method of rendering print data via host device
US8705078B2 (en) Image output system and method for logging image data storage location
US8805069B2 (en) Cell-based compression of digital images
US20100067023A1 (en) Image processing apparatus, image processing method and program
US9319565B1 (en) Interleaved encoding of compressed attribute and color planes
KR20110004795A (ko) 인쇄 상태 설정을 위한 장치, 방법, 시스템 및 기록 매체
US9838570B2 (en) Cell-based compression with edge detection and interleaved encoding
US9667839B2 (en) Digital image color plane compression
JP2019087906A (ja) 画像処理装置
US9363416B1 (en) Digital image attribute plane compression
US10872280B2 (en) Grouping objects of a compound document and compressing the group using a compression method corresponding to the group
US9069507B2 (en) Print server, printing system, and computer program product configured to send print data to an image forming apparatus based on obtained designation of the image forming apparatus
US11489985B2 (en) System and method for printing large files from a memory constrained mobile device
US9001388B2 (en) Imaging forming apparatus to merge print data with a rendering image, method of image forming, and computer-readable recording medium
JP2014007697A (ja) 画像形成装置及び画像形成システム
KR20210090339A (ko) 압축 방식에 따른 화상 후처리
US10728402B2 (en) Image processing apparatus, method of controlling image processing apparatus, and storage medium
JP5978706B2 (ja) 印刷制御プログラム、情報処理装置、印刷システム及び印刷装置
JP2012160124A (ja) 印刷制御プログラム、情報処理装置、印刷システム及び印刷装置
JP2010062859A (ja) 画像処理装置、画像処理方法及びプログラム