US007755786B2

(12) Ulllted States Patent

(10) Patent N0.:

Foehr et al. (54)

US 7,755,786 B2

(45) Date of Patent:

SYSTEMS AND METHODS FOR SUPPORT OF

*Jul. 13, 2010

(52)

US. Cl. ................... .. 358/115; 358/1.13; 715/205;

(58)

Field of Classi?cation Search ..................... .. None

VARIOUS PROCESSING CAPABILITIES

715/209; 719/332

(75) Inventors: Oliver H. Foehr, Mercer Island, WA

See application ?le for complete search history.

US ; Daniel F. Emerson, Redmond,

§VA)(US)_ Craig I‘ McLuckie Redmond, WA (U S) (73)

.

.

4,410,286 A

Ass1gnee: Microsoft Corporation, Redmond, WA Notice:

References Cited US. PATENT DOCUMENTS

_

4,594,674 A

(US)

(*)

.

(56)

10/1983

Ko et a1.

6/1986 Boulia et al‘

4,649,513 A

3/1987 Martin et a1.

4,870,611 A

9/1989 Martin et a1.

Subject to any disclaimer, the term ofthis patent is extended or adjusted under 35 IJ'S'C~ 154(1)) by 1089 days'

5,179,702 A 5,222,205 A 5,469,532 A

6/1993 Larson et a1.

ll/l995 Gerlach et a1.

This patent is subject to a terminal dis-

5,469,533 A 5’487’l38 A

11/1995 Dennis M996 Rust et 31'

1/1993 SpiX et a1.

claimer.

(Continued)

(21) Appl. N0.: 10/935,249

OTHER PUBLICATIONS Windows NT 4i0.pdf.*

(22) F1led:

Sep. 7, 2004

(65)

(Continued)

PI‘iOI‘ PllblicatiOIl Data

Primary ExamineriTWyler L Haskins Assistant ExamineriBarbara D Reinier

Us 2005/0243355 A1

NOV' 3’ 2005

(74) Attorney, Agent, or FirmiLee & Hayes, PLLC

Related US. Application Data (60)

(57)

3, 2004, provisional application No. 60/567,663, ?led

_

_

System? and methods are desclilbed for _S1_1PPOn of Yanous

on May 3’ 2004’ provisional application NO 60/567,

computmg dev1ce and target ent1ty capab1l1t1es. In an 1mple

890 ?led on May 3 2004 provisional application NO_

mentation, a method includes determining one or more pro

60/5’67 920 ?led 011 May’ 3 2004 provisional app1i_ Cation jqu ’60/567 830 ?led on May 3 2004 prOVi_

cessing capabilities of a computing device to process data for rendering by a rendering device. A selection is made, based

Sional app1iCatiOn’NO_’60/568 071 ?léd on May 3

on the determining, of one or more ?lters to provide data

2004'

(51)

ABSTRACT

Provisional application No. 60/567,679, ?led on May

Int_ C]_ G06F 3/12

G06F 17/00 G06F 3/00

s

s

con?gured for rendering by the rendering device and that

provides at least one processing capability that is not included in the one or more processing capabilities of the computing device

(2006.01) (2006.01) (2006.01) 800



11 Claims, 13 Drawing Sheets

?

4 Computing Device E

Printer 5%

File E Second Collection of

Software Components 80_8 First Collection of

Software Components @ PDL Version 8_10_ Intermediate Version

Print Mechanism @

US 7,755,786 B2 Page2 U.S. PATENT DOCUMENTS 5,537,526 5,613,124 5,699,493 5,727,220 5,745,121 5,745,122 5,745,910 5,752,055 5,752,056 5,806,078

A A A A A A A A A A

7/1996 3/1997 12/1997 3/1998 4/1998 4/1998 4/1998 5/1998 5/1998 9/1998

Anderson 9191 Atkinson et a1. Davidson, Jr. et 31. Hohensee et a1. PolitiS Gay 9191 Piersolet al. 11991191119191 Celik Huge1a1~

5,819,295 A 5,845,058 A 5903903 A

10/1998 12/1998 5/1999 5/1999 6/1999

Nakagawaetal. Shaw 9191 Kennedy

5905504 A 5,911,138 A 5,920,684 A

5940581 5950215 5,960,168 5,993,1188 6,026,416 6,070,175 6,094,665 6,134,552 6,138,162 6,144,974

A A A A A A A A A A

Barkanseta1~ Li 9191

7/1999 Hastings 9191

8/1999 9/1999 9/1999 11/1999 2/2000 5/2000 7/2000 111/2000 10/2000 11/2000

Lipton Tabuchi Shaw 9191 Nogay 9191 Kanerva et 31. Mezei Lyons et a1. Fritz 9191 Pistriotto et a1. Gartland

6,785,654 B2

8/2004 Cyr et a1.

6,789,229 6,812,941 6,826,626 6,867,874 6,891,632 6,910,843

B1 B1 B1 B1 B2 B2

9/2004 11/2004 11/2004 3/2005 5/2005 6/2005

6,917,976 6,925,597 6,941,511 6,944,515 6,952,801 6,968,557 6,990,654 6,992,785 7,017,162 7,027,660

B1 B2 B1 B2 B2 B1 B2 B1 B2 B2

7/2005 g/2005 9/2005 9/2005 10/2005 11/2005 1/2006 1/2006 3/2006 4/2006

7,043,688 B1

7,047,237 7,051,276 7,051,330 7,092,963 7,103,625 7,106,275 7,131,060 7,134,071 7,136,941 7,162,538

B2 B1 B1 B2 B1 B2 B1 B2 B2 B1

DunietZ et a1. Brown etal. McManuS Shima Schwartz Sawetal. Slaughter et a1. Anwar Hindetal. Nakajima et a1. Warmusetal.

Zhang et 31‘ carro11, Jr. Chatcavage et a1. Smith et a1. Hersch et a1.

5/2006 Tsutsumi et a1. .......... .. 715/255

5/2006 5/2006 5/2006 8/2006 9/2006 9/2006 10/2006 11/2006 11/2006 1/2007

Suzuki et a1. Mogilevsky et a1. Kaler et a1. Ryan et a1. Hipp et 31, Brunneretal. Azuma Ohwadaetal. Nguyen et 31, Cordova

6,173,295 B1*

1/2001 GoeItZ etal. ............. .. 715/209

7,171,471 B1

1/2007 Nair

6,182,080 6,182,096 6,195,676 6,199,082

1/2001 1/2001 2/2001 3/2001

7,181,731 7,209,921 7,271,935 7,274,483

2/2007 4/2007 9/2007 9/2007

B1 B1 B1 B1

Clements Mastie etal. SPiX 9141 Ferrel etal.

B2 B2 B2 B2

Pace et a1. Pace et 31, Coons etal. Aiyama et 31,

6,212,530 B1

4/2001 Kadlec

7,302,634 B2

11/2007 Lucovskyet a1.

6,247,018 B1

6/2001 Rheaume

7,359,902 B2

4/2008 Ornstein et a1.

6,247,066 B1

6/2001 Tanaka

7,426,525 B2

9/2008 Sayersetal.

6,269,403 B1 6,344,855 B1 6,362,870 B2

7/2001 Anderse1a1~ 2/2002 Fisher et a1. 3/2002 Mui e191

6385727 B1

6,407,821 6,418,448 6,427,230 6,447,184 6,449,653 6,457,017 6,466,935

B1 B1 B1 B2 B2 B2 B1

5/2002 (31188981101 91 91-

6/2002 7/2002 7/2002 9/2002 9/2002 9/2002 111/2002

Hohensee e191 Sarkar 691591191111 Kimurae1a1~ Klem?ts e191 WatkinS e191 Smart

2001/0003828 A1 2001/0013043 A1 2001/0018697 A1

6/2001 Peterson etal. g/2001 Wagner 8/2001 Kunitake etal.

2001/0043358 A1

11/2001

Schwartz ................. .. 358/1.15

2001/0044809 2002/0002667 2002/0049790 2002/0065848 2002/0073236 2002/0085020 2002/0087602

11/2001 1/2002 4/2002 5/2002 6/2002 7/2002 7/2002

Parasnis et a1. Kelsey etal. Ricker et a1. Walker et a1. Helgeson et a1. carro11, Jr. Masuda et a1.

A1 A1 A1 A1 A1 A1 A1

6,480,206 B2

11/2002 Priming

2002/0089691 A1

7/2002 Fenlnsoh et a1. ......... .. 358/1.15

6,498,657 B1

12/2002 K119129191

2002/0099797 A1

7/2002 Merre11 et a1.

6,505,219 B1*

1/2003 MacLean etal. .......... .. 715/205

2002/0107gg6 A1

6,507,858 B1 6,519,557 B1

1/2003 Kanerva e191 2/2003 159191189191

2002/0111133 A1 2002/0143523 A1

8/2002 Wittkotter 10/2002 Balaji et a1.

deBryet 91Probert, 1119191

2002/0174145 A1 2002/0188638 A1

11/2002 Dugaetal. 12/2002 Harnsoher

11619191 (391180119191 Ernst Anders L<>ydeta1~ Anderson et a1.

2003/0009672 2003/0018694 2003/0028560 2003/0078829 2003/0079181 2003/0093520

Temple, 111

2003/0126136 A1

7/2003 Omoigui

Ramot Bright Lisitsaetal. Wiechers e191 Friedman Ad1ereta1~ 31111919198911 Chang 9141 Brooke et a1. Wloka et a1. DiStefano, 111 Barker et a1.

2003/0137539 2003/0142325 2003/0149934 2003/0158851 2003/0163552 2003/0163589 2003/0167356 2003/0172168 2003/0182152 2003/0182311 2003/0182450 2003/0182656

7/2003 Dees 7/2003 Leslie g/2003 Worden

6,538,760 B1 6,549,918 B1 6,571,279 6583789 6,591,278 6,604,144 6,608,693 6,609,200

B1 B1 B1 B1 B1 B2

6,615,281 B1 6,654,147 6,657,647 6,658,477 6,674,540 6,675,353 6,675,356 6681223 6,715,126 6,763,343 6,765,584 6,771,291 6,781,609

B1 B1 B1 B1 B1 B1 B1 B1 B1 B1 B1 B1

3/2003 4/2003 5/2003 6/2003 7/2003 8/2003 8/2003 8/2003 9/2003 11/2003 12/2003 12/2003 1/2004 1/2004 1/2004 1/2004 3/2004 7/2004 7/2004 8/2004 8/2004

A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1

8/2002 Gentneret 31,

1/2003 1/2003 2/2003 4/2003 4/2003 5/2003

8/2003 8/2003 8/2003 9/2003 9/2003 9/2003 9/2003 9/2003 9/2003

Goodman Chen et a1. Kudrolli et a1. Chen et a1. Schumacher et a1. Beesley

Britton et a1. Savitzky et al. Bunce etal. Smith et a1. Mak etal. Nakajima et a1. Nakajima et a1. Ong et a1. Leathers et a1.

US 7,755,786 B2 Page 3 2003/0187534 2003/0187612 2003/0187870 2003/0195784 2003/0204495 2003/0229845 2003/0233420 2004/0003388 2004/0003448 2004/0021905 2004/0032611 2004/0034848 2004/0049737 2004/0054669 2004/0061729 2004/0066527 2004/0078755 2004/0080764 2004/0103073 2004/0111418 2004/0117733 2004/0130741 2004/0139049 2004/0153467 2004/0160613 2004/0167941 2004/0183837 2004/0193599 2004/0194025 2004/0205623 2004/0205653 2004/0207869 2004/0216048 2004/0225960 2004/0230608 2004/0267553 2004/0268304 2005/0005233 2005/0015767 2005/0071385 2005/0086030 2005/0091574 2005/0097441 2005/0099398 2005/0104894 2005/0125720 2005/0132279 2005/0138540 2005/0144556 2005/0187803 2005/0190186 2005/0198069 2005/0210026 2005/0210227 2005/0223312 2005/0251742 2005/0278240 2005/0278616 2005/0278626 2005/0286063 2006/0031749 2006/0041838 2006/ 0047743 2006/0056334 2006/0080316 2006/0117019 2006/0117268 2006/0136827 2006/0146353 2006/0155529 2006/0206794

A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1

10/2003 10/2003 10/2003 10/2003 10/2003 12/2003 12/2003 1/2004 1/2004 2/2004 2/2004 2/2004 3/2004 3/2004 4/2004 4/2004 4/2004 4/2004 5/2004 6/2004 6/2004 7/2004 7/2004 8/2004 8/2004 8/2004 9/2004 9/2004 9/2004 10/2004 10/2004 10/2004 10/2004 11/2004 11/2004 12/2004 12/2004 1/2005 1/2005 3/2005 4/2005 4/2005 5/2005 5/2005 5/2005 6/2005 6/2005 6/2005 6/2005 8/2005 9/2005 9/2005 9/2005 9/2005 10/2005 11/2005 12/2005 12/2005 12/2005 12/2005 2/2006 2/2006 3/2006 3/2006 4/2006 6/2006 6/2006 6/2006 7/2006 7/2006 9/2006

Suzuki et al.

2008/0021923 A1

1/2008 Sedky et al.

Miyake OTHER PUBLICATIONS

Nakajima et al. Smith Lehnert Salesin et al. Stark et al. Jacquemot et al.

Windows NT Server printing.pdf.* Windows NT 4i0.pdf, Windows NT 4.0 release date Jul. 29, 1996.*

Morrow et al. Holmstead et al.

tory.pdf, Adobe Photoshop 5.0 released May 1998, a common appli

Daly et al.

............... .. 358/1.13

Moore et al. Hunt et al.

Seyrat et al. Green et al. Kloosterman et al.

Shinjo et al. Sievert et al. Blake et al.

Nguyen et al. Moreau et al.

Ferlitsch Hancock et al. Conover et al. Kurotsu et al. ............. .. 358/1.1

Prahlad et al. Watanabe et al. Liu et al. Hubert et al. Weil et al. Had?eld et al. Endo Brown et al. Parikh et al. Ornstein et al. Brunton Kuo et al.

Kays et al. Nash et al. Rao Zeidman

Maaniitty et al. Herbach et al. Garside et al. Sanborn et al. Little et al.

Relyea et al. Baltus et al. Petersen et al. Jain et al. Klassen

Cherry et al. Wood Emerson et al. Erdtrnann et al.

Mogilevsky et al. Delenda Eller Malik Owen et al. Schramm et al.

Khan Yuan et al. Yuan et al. Gilmore et al.

Sylthe et al. Talley et al. Villaron et al. Yue et al. Ludviksson et al. Ornstein et al.

Adobe Photoshop release history.pdf.* Supported ?le formats iPhotoshop Elements 5i0i.pdf.* Adobe Photoshop release history.pdf, Adobe Photoshop release his cation.*

Supported ?le formats iPhotoshop Elements 5i0i.pdf, Adobe Photoshop 5.0 released May 1998.* Windows NT Server printing.pdf, Windows NT 4.0 release data Jul.

29, 1996* Ellis et al., “Postscrip, BeZier Curves and Chinese Character”, ACM, 1989, pp. 162-165. Chien, et al., “Effcient Schemes for Managing Multiversion XML

Documents”, University of California, California, Dec. 19, 2002, pp. 332-353.

Han, et al., “WebSplitterzA Uni?ed XML Framework for Multi Device Collaborative web browsing” IBM Thomas J. Watson research Centre, Hawthorne, CSCW, Dec. 2-6, 2000, ACM 1-58113 222-0/00/0012, pp. 221-230.

Hardy, et al., “Mapping and Displaying Structural Transformations between XML and PDF”, ACM, 2002, pp. 95-102. Jacobs et al.; “Adaptive Grid-Based Document Layout”; 2003 ACM; pp. 838-847.

Peters et al.,“CrystalWebiA distributed authoring environment for the World-Wide Web” Computer Networks and ISDN Systems, North Holland Publishing. Amsterdam, NL. vol. 27, No. 6, Apr. 1995, pp. 861-870.

Orchard et al “[Editorial Draft] Versioning XML Languages W3C Proposed TAG ?nding” Nov. 16, 2003, pp. 1-23. Orchard, “Versioning XML Vocabularies”, published on XML.com, Dec. 3, 2003, pp. 1-10. Bluethman, et al., “Interleaved Graphics and Text”, IBM Technical

Bulletin, Apr. 1980, vol. 22, No.4, Oct. 1986, pp. 4813-4815. Marco, et al., “A Framework for Designing and Implementing the Ada Standard Container Library”, ACM 2003, pp. 49-61. Holman; “What is XSL-FO”, Google Mar. 20, 2002, pp. 1-4. Pawson; “Printing from XML: An Introduction to XSL-FO” , Google Oct. 9, 2002, pp. 1-4.

El-Kwae, et al., “Document Image Representation Using XML Tech nologies”; Proceedings of SPIE, vol. 4670. 2001, pp. 109-120. Christodoulakis, et al., “Multimedia Document Presentation, Infor mation Extraction, and Document Formation in MINOS: A Model and a System”; ACM Transaction on Of?ce Information Systems, vol. 4, No. 4: Oct. 1986; pp. 346-383. “Interleaved Graphics and Text” Bluethman et al., IBM Technical

Disclosure Bulletin, Apr. 1980, vol. 22, No. 11., pp. 4813-4815. Ef?cient Representation and Streaming of XML Content Over the Internet Medium Girardot et al., IEEE 2000 pp. 67-70.

Of?cial Notice of Rejection for China Patent Application No. 2004800013294, Dec. 18, 2007, pp. 1-16.

“@tryinCSS3 (was Useragent Rules in CSS)”; Mar. 31, 2004; http:// lists.w3 .org/Archives/Public/www-style/2004Mar/0333 .html.;

2

pages.

“Interleaved Graphics and Text” Bluethman et al., IBM Technical Disclosure Bulletin, Apr. 1980, vol. 22, No. 11., pp. 4813-4815. Akerlof, “The Market for “Lemons”: Quality Uncertainty and the Market Mechanism”, Quarterly Journal of Economics, vol. 84, Issue 3, Aug. 1970, pp. 488-500. Devanur, et al., “An Improved Approximation Scheme for Comput ing Arrow-Debreu Prices for the Linear Case”, retrieved on Nov. 10, 2008 at <>, 2003, pp. 1-8. Geanakoplos, et al., “The Arrow-Debreu Model of General Equilib rium”, retrieved on Nov. 10, 2008 at <>, Cowles Foundation for Research in Economics at Yale University, 2004.

Jain, et al., “A Polynomial Time Algorithm for Computing an Arrow Debreu Market Equilibrium for Linear Utilities”, Proceedings of the

US 7,755,786 B2 Page 4 45th Annual IEEE Symposium on Foundations of Computer Science

(FOCS ’04), IEEE, 2004, pp. 1-9. Jain, et al., “Approximating Market Equilibria”, Springerlink, LNCS 2764, 2003, pp. 1-11. Ashcraft, et al., “SPOOLES: An Object-Oriented Sparse Matrix Library”, retrieved on Jan. 21, 2009 at <
“Networked File System”; http://www.scit.wlv.ac.uldjphb/comms/ nfs.htm.; 6 pages, Apr. 19, 2004. “Apache Server Frequently Asked Questions”; Apache HTTP Server Version 1.3; http://httpdapache.org/docs/misc/FAQ.html.; 35 pages,

Apr. 19,2004. “URIQA! The URI Query Agent Model, A Semantic Web Enabler”;

viewdoc/summary?doi:10.1.1.44.5809>>, Proceedings of the 9th

URIQA: The Nokia Query Agent; http://sw.nokia.com/uriqa/

SIAM Conference on Parallel Processing for Scienti?c Computing,

URIQA.html; 9 pages, Apr. 20, 2004. “XMP Adding Intelligence to Media”; XMP Speci?cation; Jan.

pp. 1-10.

Levy, et al., “Non-Distorted Texture Mapping for Sheared Triangu lated Meshes”, The 25th Conference on Computer Graphics and Interactive Techniques, ACM, 1998, pp. 343-352. Reguero, et al., “Large Scale Print Spool Service”, retrieved on Jan. 21, 2009 at <>, Proceedings of the Twelfth Systems

Administration Conference (LISA 1998), Boston, Massachusetts, Dec. 6-11, 1998, pp. 1-15.

Shade, et al., “Layered Depth Images”, The 25th Annual Conference on Computer Graphics and Interactive Techniques, ACM, 1998, pp. 231-242.

KanZaki, “RSSiSummary and Release of Site Information,” retrieved on Feb. 17, 2010 from <
20040408231744/http://www.kanZaki.com/docs/sw/rss.html>>, Mar. 2, 2004. Sun Microsystems, “JAR File Speci?cation”, retrieved on Feb. 17, 2010 at http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html>>,

2004; 11 pages.

“Controlling the Data Chaos by Adding I*ntelligence to Media”; 4 pages, 2004.

Miller; “An Introduction to the Resource Description Framework”;

D-Lib Magazine, May 1998; ISSN 1082-9873; http://www.dlib.org/ dlib/may98/miller/05miller.html.; 10 pages.

“@tryinCSS3(was:Useragent Rules in CSS)”; Mar. 31, 2004; http:// lists.w3.org/Archives/PUblic/www-style/2004Mar/0333.html.; 2 pages.

“[Editorial Draft] Versioning XML Languages”; Proposed TAG Finding Nov. 16, 2003; http://www.w3 .org/200 l/tag/doc/versioning 20031116; 23 pages. “SOAP Version 1.2 Part 1: Messaging Framework”; W3C Proposed

Recommendation May 7, 2003; http://www.w3org/TIU2003/PR soap12-part1-20030507. 25 pages. Of?cial Notice Of Rejection for China Patent Application No. 2004800013294 mailed on Nov. 23, 2007, pp. 16.

“SVG Print”, W3C Working Draft, Jul. 15, 2003, http://www.w3 .org/

Eisenberg, et al., “Consensus of Subjective Probabilities: The Pari Mutuel Method”, Annals of Mathematical Statistics, 1959, pp. 165

TIU2003/WD-SVGPrint-20030715/, pp. 1-14. “Open eBook Publication Structure 1.2”, Aug. 27, 2002, 91 pages.

* cited by examiner

2003.

168.

US. Patent

100

Jul. 13, 2010

Sheet 1 0f 13

\

Processing Module 1 6 Filter Pipeline 102

Filter 104! 1)

\

Filter 104(2)

Filter 104m)

Filter 104(N)

[ Target Entity Rendering Mechanism m

w I

US 7,755,786 B2

US. Patent

300

Jul. 13, 2010

Sheet 3 0f 13

US 7,755,786 B2

N Job (Container) __0g

Document 3.;4

Y Version 30

Y Page 3 8

Resource w

l

: Resource 18 :

""899 £2.

Font QM

Other Resource m

US. Patent

Jul. 13, 2010

Sheet 4 0f 13

US 7,755,786 B2

mmm“Eama

QN0o25v6

ai=5

XQEmBwE

A

JgCQED Eawv mE

mQEgmmuwaEm

B3wuvE

9I85S03M1

E3mQ wHE wNubMgow?ml

US. Patent 500

Jul. 13, 2010

—\

Sheet 5 0f 13

Processing Module E

Outline Filter 5_02

Gradient ?lter @

Transparent vector shape ?lter

m

Transparent Image Filter 5_0_3

Other Filters §__1_l_

US 7,755,786 B2

US. Patent

600

Jul. 13, 2010

—\

Sheet 6 0f 13

US 7,755,786 B2

E [j

g [:1

Computing Device 62 File Container §Q§

V Software Components

(Rendering Capabilities) E

V PDL _1_()_

74% 6 700

w

E

704 w [Ii-1&5!

714

I: 44———>

Printer 7 2



File Container?)_8_

Il ] liillili

V

/ llllllllilllll \_

Software Components

(Rendering Capabilities) E

7

V PDL L V Print Mechanism _71_

US. Patent

800

Jul. 13, 2010

Sheet 7 0f 13

US 7,755,786 B2

w‘ EEI E 'lj % I: / ]lllll]lllll] \

Computing Device __lg

Printer M

File i v

Second Collection of

Software Components @g First Collection of

Software Components m

* PDL Version L

l Intermediate Version

m

v _

_

Print Mechanism QL

US. Patent

900

Jul. 13, 2010

US 7,755,786 B2

Sheet 8 0f 13

w

High

Low Printer

Computing Device

Processing

Processing

Capabilities ,/ A

\\\ \

Computing Device E Processing Capabilities

Capabilities

Printer g0_8_ : Printing Mechanism w

Q22 Filter % Filter 9_2A

Filter E

914 j Printer L

Computing Device QM Processing Capabilities

Processing Capabilities w

Filter gin: %

Filter 952

-

Printer Mechanism E

Filter 91_8

\\

' High

Low

Printer

Computing Device

proces_s_'_ng

Processing

\ Capabilities

Capabilities

_





Computing Device QQQ

Prlnter mg

Application 944

Processing Capabilities



93_4

Filter 9§_6_

Filter 9_3_§ Filter w

A

?¢9l g

Printer Mechanism 9%

US. Patent

Jul. 13, 2010

Sheet 9 0f 13

US 7,755,786 B2

Older

(Legacy) Computing Device Computing Device 1004

Application 1012

902

j

.

_

Computing Device 1020

Primer 1010

Application 1022

Processing Capabilities 1014

Processing Capabilities Finer 1024 M

Filter 1016 Printer Mechanism 1

Filter 1028

V Newer

(High End) Computing Device

Computing Device 1030

Application 1032

Processing Capabilities 1034

Filter 1036 Filter 1038

FiltermQ

?‘.9,

8

US. Patent

Jul. 13, 2010

Sheet 10 0f 13

US 7,755,786 B2

Fewer

Processing Capabilities

,//”

_

\

f- 1100

Computing Device 1102

Application 1104

1126 j

Printer 1106 P

Computing Device 1118 Processing Capabilities

'

C

b'l't'es

rocesslrl? 14apa H I Filter 1108

1120

Filter 1108( 1)

Filter 1110

Filter 1110(1)

Filter 1112 v

'

Computing Device 1122

Greater

Processing Capabilities

Processing

m5

Capabilities

Filter 1108(2) Filter 1110(2)

Filter 1112(2)

29. ll

_

Printer Mechanism

'

1116

US. Patent

Jul. 13, 2010

Sheet 12 0f 13

US 7,755,786 B2

1300 —\ l 1302 Printer Executes a Filter Selection Module to Select One or More of a Plurality of

:

|

|

: Filters

Punter 122g

Interpreter 1308

|

|

Package

|

1206 2

I?‘

I

encrypted

m

Filter

I

I

encfypted

m

Module 1304

I

I

@I

w

l

l _

_

_

_

_

_

_

_

_

_

_

_

_

I

_

_

_ 3

:7 Tti'PrTntZr Exé?eZth‘e EQECEJFEQTS | I

|

| :

Printer 1226 P k

_

_

_

_

_

I

I

l

_

_

_

_

_

_

_

_

_

_

_

_|

______________ — _ i

Interpreter 1308

| I

Printer Decryption Filter

|

encrypted A1PDL i2. @l —> | Color Conversion Filter 1306(2) | ~> IFLII

: I

132363;?

I

encrypted

I

I Page 121g I

_

I

_

Page 1216

PDL Emitter Fllter 1306 3

I

|

I

l

l

'13 4 Interpreter Passes the PDL to a Printing Mechanism l Printer 1226 I

I l

|

|

PDL 1312

l|

Interpreter 1308

+

[El '’

Printing

Mechanism 1316

I |

|

|

I l l 1318 Interpreter causes the Printing Mechanism to Render the Pages Printer 1226

Printing Mechanism 1316

US. Patent

Jul. 13, 2010

Sheet 13 0f 13

US 7,755,786 B2

1400 —\ 1402 Examine Capabilities of a

Rendering Device To Process a Document

l EDA Derive a Processing Capabilities Model of the

Rendering Device Based on the Examination

mo Select One or More of a

Plurality of Filters based on the Processing

Capabilities Model

l M Arrange the Selected One or More Filters to form a

Device Driver

l

mg Form a Communication

having the Device Driver for Storage on a

Computing Device

3169. i4

US 7,755,786 B2 1

2

SYSTEMS AND METHODS FOR SUPPORT OF VARIOUS PROCESSING CAPABILITIES

convert responses to the input/output instructions from the

respective target entity into a form that is compatible with the computing device. Because of the wide range of computing

RELATED APPLICATIONS

devices and target entities that are available to users, however, manufacturers of computing devices and target entities are faced with the challenge of deriving device drivers for each

This application incorporates by reference the entire dis closure of each of the following US. Provisional Patent

particular environment that may be encountered by their

Applications, and claims priority under 35 U.S.C. §1 19(e) to the following US. Provisional Patent Applications, each of

products. For example, a manufacturer of a printer may be required to develop a device driver for each particular con

which was ?led on May 3, 2004:

?guration of computing device that may utiliZe the printer. Further, each device driver that is developed for a particular computing device may be in?exible in that the device driver is not able to support changing capabilities that may be provided through further development of the computing device and/or

Ser. No.

Inventor(s)

11/912,794

Foehr et al.

10/912,975

10/935,681

10/938,476

Foehr et al.

Foehr et. al.

Sedky and Emerson et al.

Title

the printer. Therefore, a new device driver was traditionally required when additional functionality was added to the com

SYSTEMS AND METHODS FOR PAS SING DATA IN A FILTER PIPELINE SYSTEMS AND METHODS FOR HANDLING A FILE WITH COMPLEX ELEMENTS SYSTEMS AND METHODS FOR SUPPORT OF VARIOUS COMPUTER AND PRINTER CAPABILITIES SPOOLING STRATEGIES

puting device and/or the printer. Accordingly, there is a continuing need for systems and methods that support various computing device and target 20

SUMMARY

Systems and methods are described that support various 25

10/935,025

Foehr et al.

10/938,357

Foehr et al.

for being rendered. In an embodiment, a plurality of ?lters is 30

provided, each corresponding to a respective processing capability for processing data for being rendered. The ?lters may be arranged to form a ?lterpipeline such that one or more

of the ?lters provides an output, which is then provided as an input to another one of the ?lters. In this way, the ?lter

pipeline may be formed by arranging the ?lters, thereby pro 35

viding a ?exible infrastructure to address a variety of func tionality that may be provided on a computing device and/or

target entity. The plurality of ?lters, for instance, may be arranged to 40

TECHNICAL FIELD

The present invention generally relates to computing devices and rendering devices, and more particularly relates to support of various processing capabilities of computing devices and/or rendering devices.

computing device and/or target entity processing capabilities. For example, computing devices and/or target entities may each support various processing capabilities to process data

USING STRUCTURED JOB INFORMATION PLANAR RENDERING SHARING OF DOWNLOADED RESOURCES

entity capabilities.

form a device driver which is executable to convert input/ output instructions from a computing device into a form that is compatible with a target entity, and vice versa. In an imple mentation, the ?lters are selected based on the processing

capabilities of the computing device to process data for being rendered by the printer. In another implementation, the ?lters 45

are selected based on the processing capabilities of the ren

dering device to process data for being rendered by the ren dering device. For instance, the rendering device (e.g., a

printer) may support particular processing capabilities, such BACKGROUND 50

as to convert a color image to black-and-white. Therefore, a device driver may be formed by selecting one or more of a

The range of functionality available to users of computing

plurality of ?lters for execution on the computing device that

devices is ever increasing. From traditional desktop personal computers (PCs) and laptops to tablet PCs and personal digi tal assistants (PDAs), computing devices may be con?gured to provide functionality in different environments. Addition

are compatible with the particular processing capabilities of the rendering device. Thus, the plurality of ?lters may be arranged to take advantage of the particular processing capa bilities of the rendering device such that the device driver that

55

ally, the range of target entities, and particularly rendering devices, which may be utiliZed by these computing devices also continues to increase. For example, a computing device con?gured as a desktop PC may include a display device that provides an output for viewing by a user and a color printer for

is executed on the computing device does not provide redun dant functionality. Likewise, one or more ?lters may be

60

printing color images to a printable medium. The computing device may communicate with each of the target entities through use of a respective device driver. A device driver, when executed, is utiliZed to convert input/ output instructions received from the computing device into a

implemented on the rendering device to take advantage of the processing capabilities of a computing device. By providing the processing capabilities through use of a plurality of ?lters, the processing workload may be divided between the computing device and the target entity. Continu ing with the previous example, the functionality of ?lters

form that is compatible with the respective target entity. Like

utiliZed to process data for being rendered by a rendering device may be provided for execution on either the computing device or the rendering device. Therefore, both the computing

wise, the device driver, when executed, may be utiliZed to

device and the rendering device may contribute one or more

65

US 7,755,786 B2 4

3 processing capabilities such that the data is processed by both the computing device and rendering device.

FIG. 13 is a How diagram depicting a procedure in an

exemplary implementation in Which the printer processes and

The plurality of ?lters may also be grouped to form various collections that address the different processing capabilities

renders the package of FIG. 12.

of different respective computing devices and/or target enti

plary implementation in Which a processing capabilities

ties. For instance, a computing device may be communica

model is derived for a target entity and utiliZed to create a

tively coupled to a plurality of printers, each having different processing capabilities, one to another. The computing device

device driver for that rendering device.

may utiliZe different collections of the plurality of ?lters

?gures to reference like components and features.

FIG. 14 is a How chart depicting a procedure in an exem

The same numbers are used throughout the disclosure and

based on the processing capabilities of the respective printers. DETAILED DESCRIPTION

In this Way, the different collections of the plurality of ?lters may each act as a device driver for the respective printers. In another instance, a rendering device may likeWise include a

OvervieW

plurality of ?lters to access different processing capabilities of a plurality of computing devices, one to another. The plurality of ?lters may also be utiliZed to support legacy devices. For instance, a device driver may be formed from a plurality of ?lters. A neW rendering device, hoWever, may be encountered Which supports functionality that is not supported by the plurality of ?lters. Therefore, one or more ?lters may be generated for addition to the plurality of ?lters

FIG. 1 is an illustration of an environment 100 in an exem

plary implementation in Which a ?lter pipeline 102 may be con?gured and ordered to achieve a variety of desired func tionality. The ?lter pipeline 102 includes a plurality of ?lters 104(1),104(2), . . . , 104(n), . . . , 104(N). Each ofthe plurality

20

particular processing functions to generate an output. For example, one of the ?lters 104(1)-104(N) may provide a

such that a neW device driver is formed having the one or more

Watermark, another one of the ?lters may provide a color conversion, a further one of the ?lters 104(1)-104(N) may

additional ?lters and the plurality of ?lters. Thus, the neW device driver that includes the one or more ?lters may provide

an output that is compatible With the functionality of the neW rendering device. Likewise, the functionality of one or more ?lters may be added to a target entity to address changing

25

FIG. 1 is an illustration of an exemplary computing envi ronment in Which a ?lter pipeline may be con?gured and ordered to achieve a variety of desired functionality. FIG. 2 shoWs an exemplary system for producing and

another, yet another one of the ?lters 104(1)-104(N) may

30

shoWing a processing module of FIG. 1 in greater detail. FIGS. 6, 7, and 8 are illustrations of systems in exemplary

104(1)-104(N) of the ?lter pipeline 102 provide a ?exible infrastructure that can be arranged to provide a variety of 35

40

are typically implemented as softWare that is targeted to a

particular type of target entity, such as printers, display devices, storage devices, removable media devices, and so 45

106 as illustrated.

In another instance, by forming the processing module 106 50

device, illustrated as a printer 114, may include ?lters 104(n), 55

use of respective ?lter collections. 60

implementation in Which the printer includes processing capabilities that are provided through execution of a plurality of ?lters. FIG. 12 is a How diagram illustrating a procedure in an

exemplary implementation in Which a printer driver provided by a collection of ?lters preprocesses a package for output to a printer.

as a plurality of ?lters 104(1)-104(N), a processing Workload may be divided betWeen a computing device and a rendering device. For example, a computing device 112 may include an

application 108 and ?lters 104(1), 104(2). A rendering

rendering device.

FIG. 11 is an illustration of a system in an exemplary

forth. The device driver “processes” general input/ output instructions into a form that the particular device can under stand, and thus may also be referred to as a processing module

mentation in Which processing capabilities are ?exibly pro vided by a plurality of computing devices and a plurality of

implementation in Which a hierarchy of processing capabili ties of computing devices is shoWn, each of Which having differing processing capabilities that are addressed through

entity rendering mechanism 110, such as a printing mecha nism. The plurality of ?lters 104(1)-104(N), When taken

together, provides device driver functionality. Device drivers

ties depicted as printers, each of the devices have differing processing capabilities that are con?gured to interact, one to

FIG. 10 is an illustration of a system in an exemplary

functionality. The ?lter pipeline 102, for instance, may be provided as a processing module 106 that is utiliZed to process an output of an application 108 such that it may be rendered by a target

implementations shoWing computing devices and target enti another. FIG. 9 is an illustration of a system in an exemplary imple

Additional examples of ?lter functionality may be found in the folloWing discussion starting in relation to FIG. 5. Addi tionally, the plurality of ?lters 104(1)-104(N) may be arranged such that an output from one of the ?lters is provided as an input to another one of the ?lters. In this Way, the ?lters

consuming job information that may employ the ?lter pipe line of FIG. 1. FIG. 3 shoWs an exemplary schema that can be used to form job information having a structure shoWn in FIG. 2. FIG. 4 shoWs an exemplary instantiation of the schema of FIG. 3. FIG. 5 is an illustration in an exemplary implementation

perform a conversion of content from one resolution to process content from one format to another format, and so on.

functionality of the computing device. BRIEF DESCRIPTION OF THE DRAWINGS

of ?lters 104(1)-104(N) is con?gured to provide one or more

65

104(N) that process the output of ?lters 104(1), 104(2) such that the target entity rendering mechanism 110 can render the result. Further discussion of arrangement of ?lters for Work load sharing may be found in relation to FIG. 9. In a further instance, the ?lter pipeline 102 may also be “tapped” at various points such that a data stream processed by particular ?lters 104(1)-104(N) is routed to a correspond ing device. For example, computing device 116 may include the application 108 and the ?lter pipeline 102. In other Words, computing device 116 includes a version of each of the ?lters 104(1)-104(N) in the ?lter pipeline 102. Therefore, the com puting device 116 may provide an output to a printer 118 that does not include any of the ?lters 104(1)-104(N). The com

US 7,755,786 B2 5

6

puting device 116 may also provide an output from ?lters

104(1), 104(2) that may be further processed by printer 114

that is, the folders may store individual ?les that contain content that maps to actual parts of the document, but the

that includes ?lters 104(n), 104(N). In this Way, the process ing module 106 may route the data processed by the ?lters

With actual parts of the document.

104(1)-104(N) according to the processing capabilities of the target entities (e.g., printers 114, 118). A further discussion of

processing of job information 202 Will be addressed sepa

?lters that are individually executable by a rendering device

rately beloW. First, by Way of overvieW, the system 200

to address differing computing device processing capabilities

includes an application module 210 and conversion logic 212 that has access to a spool storage 214 via application pro

folders themselves may not have a one-to-one relationship

The production and consumption aspects (204, 206) of the

may be found in relation to FIG. 11.

In yet another instance, the ?lter pipeline 102 may be

gramming interfaces (APIs) 216. The spool storage 214

utiliZed to implement a versioning strategy as neW processing functionality becomes available. For example, ?lters that are

implements the production aspects (204) of the processing of

used to process a neW version of a document may be added to

the job information 202.

stores the job information 202. This chain of components

the ?lter pipeline 102 that is con?gured to process an earlier

(e. g., older) version of a document. Therefore, the ?lter pipe line 102, through addition of the neW ?lter, may process both versions of the document. Further discussion of arrangement of ?lters for support of a legacy rendering device may be

5

one case, a device may implement the spool storage using RAM memory. In another case, the device may implement the

spool storage using disk storage, and so on. The spool storage

found in relation to FIG. 10.

Exemplary Environment

Spool storage 214 represents storage for storing job infor mation implemented using any physical storage medium. In

20

may de?ne a single ?le, a collection of associated ?les, or some other storage strategy. A unit of spool storage (such as a

single ?le) that stores an entire package de?ning a job is also

FIG. 2 shoWs an exemplary system 200 for producing and

referred to as a “container.” Alternatively, the spool storage

consuming job information 202 that may employ the ?lter pipeline 102 and the processing module 106 of FIG. 1. The

can refer to transitory information transmitted via a commu

nication channel and inherently stored on that channel during

term “job” as used herein refers to a task in Which one or more 25

actions are performed to process job information. For

transport The system 200 also includes a spooling module 218 that is

instance, a print job may entail printing job information that

con?gured to retrieve the job information 202 from the spool

de?nes one or more documents. More generally, reference to

storage 214 and process the job information 202 to provide an output result. This chain of components implements the con

“processing” job information can refer to any kind of conver sion of such job information for rendering, such as printing or

displaying such job information. Alternatively, processing

30

can refer to distributing the job information to a target desti

nation (With or Without modifying it), archiving the job infor mation, or some other form of processing. The term “job information” refers to any kind of information used to specify the nature of the job, such as the actual information to be rendered, and/or information that de?nes hoW the job is to be rendered, and so on. The production of such job information

performed on the job information 202, Which may or may not modify the content of the job information 202. The process 35

includes a de?ned structure 208. The structure 208 generally includes a plurality of nodes that are connected together according to a set of established rules. The same general rules

target location (With or Without modifying it), archiving the job information 202, and so on. In any case, the recipient of

the output result generated by the spooling module 218 can 40 include one or more of the target entities (220, 222, . . . , 224)

associated With different usage cases 226. A variety of the usage cases 226 Will be discussed beloW.

The modules, logic and storage units shoWn in the system 200 can be implemented by any variety and grouping of 45

apply to the construction of the structure 208 regardless of the

physical mechanisms and devices. In one exemplary case, a

computing device executes the application module 210, the conversion logic 212, the APIs 216, the spool storage 214 and the spooling module 218. More speci?cally, the various logic and modules (210, 212, 216, 218) can be implemented by

application and application platform used to generate the job information 202. In the exemplary case of FIG. 2, the structure 208 uses a hierarchical scheme to connect the nodes together. A hierar

ing may include printing the job information 202, displaying the job information 202, routing the job information 202 to a

202 in the exemplary system 200 is generally represented by arroW 204, and the consumption of such job information 202 is generally represented by arroW 206. As broadly indicated in FIG. 2, the job information 202

sumption (206) aspects of the processing of the job informa tion 202, and thus may correspond to the processing module 106 of FIG. 1. Processing can refer to any kind of action

50

machine readable code that is storable in the memory of the

chical scheme couples the nodes together using parent-child

computing device and executed by a processing unit(s) of a

relationships. That is, a “top-most” node de?nes a so-called root node. Thus, the use of the terms “top” and “bottom” refer to placement in the hierarchical scheme relative to the root

computing device. As previously described, the spool storage

node. The root node includes one or more child nodes, and the child nodes, in turn, can include one or more of their oWn

55

respective child nodes, and so on. If so con?gured, child

214 can be implemented by a storage medium (e. g., hard disk) provided by the computing device. The computing device can operate using any kind of platform (e.g., as de?ned by the operating system and/or other softWare con?guration of the computing device). In other Words, in one implementation,

nodes can generally inherit properties associated With their

the functionality and associated formats to be described

respective parent/ ancestor nodes.

beloW are speci?cally con?gured to operate on different com

Generally, the structure 208 is a logical concept that may or may not map to actual parts of a document to be rendered.

That is, each node may be considered an object. Certain objects may represent actual parts of a document to be ren dered (such as various image resources and font resources). Other objects may not have a one-to-one relationship With parts of the documents to be rendered. These latter types of nodes are therefore analogous to folders in a ?le hierarchy;

60

puting platforms, thus de?ning a standard approach that has Wide applicability to different technical environments and Which thus serves to facilitate interaction among different technical environments and associated users. In one case, the target entities (220, 222, . . . , 224) can be

65

implemented as devices Which are separate from the comput

ing device Which implements the other components (210 218) of the system 200. The computing device can be com

Systems and methods for support of various processing capabilities

Sep 7, 2004 - on the determining, of one or more ?lters to provide data. 2004' ...... 214 can be implemented by a storage medium (e. g., hard disk) provided by ...

2MB Sizes 1 Downloads 215 Views

Recommend Documents

Apparatus, methods and systems for anonymous communication
Aug 28, 2008 - 5,818,836 A * 10/1998 DuVal . ... 6,801,952 B2 10/2004 BelZile. 6,876,734 B1 ...... laptop personal computers, as Internet appliances, and as.

Apparatus, methods and systems for anonymous communication
Aug 28, 2008 - 9/1999 D Anna.) et a1' ..... In addition to hardware, software, protocols and ...... codes, connect criteria based on contact codes, and/or ana.

Apparatus, methods and systems for anonymous communication
Aug 27, 2008 - 365/4917. 3,883,693 A * ..... The Internet is a collection of computer networks from ..... to support voice communication as voice over Internet pro.

Apparatus, methods and systems for anonymous communication
Aug 27, 2008 - CTI for Management Buyer's Guide, “Internet Phone. Release 4 ..... tends to have enhanced relevance in the commercial or pro fessional ...

Apparatus, methods and systems for anonymous communication
Aug 28, 2008 - question, inquiry or vieW (“posting”) at a selected Web site of the marketplace. ..... if the initiator attempts to make contact Within the expert's o?ice hours. As another ..... tion (e.g., phone number, IP address, domain name, W

Apparatus, methods and systems for anonymous communication
Aug 28, 2008 - By comparison, in circuit-switched networks, the call control functionality and ... In addition to hardware, software, protocols and infrastructure ...

Apparatus, methods and systems for anonymous communication
Aug 28, 2008 - Appl. No. 12/199,647; mailing date Apr. 13,2010; 13 pages. The '647 and '645 .... Accordingly, these networks enhance the ability of service providers to deploy new ... business model. Ebay, Yahoo, E*Trade and Amazon are.

Apparatus, methods and systems for anonymous communication
Aug 28, 2008 - bandwidth being offered by network carriers, not only data but also voice, audio and ... vices and associated tools, such as chat rooms, email and. Web publishing. ...... e.g., during the connection, via monitoring the transaction.

Apparatus, methods and systems for anonymous communication
Aug 27, 2008 - charges participant C a much loWer price for the ?shing advice. Moreover ..... tion (e.g., phone number, IP address, domain name, Web.

Apparatus, methods and systems for anonymous communication
Aug 28, 2008 - DELIVERY OF REFERENCE .... known and increasingly diverse in direction, content and business ... Ebay, Yahoo, E*Trade and Amazon are.

Sonar Signal Processing Methods for the Detection and ... - IJRIT
and active sonar systems can be used to monitor the underwater acoustic environment for incursions by rapidly moving ... detection and tracking of a small fast surface craft (via its wake) in a highly cluttered shallow water ..... automatic detection

Sonar Signal Processing Methods for the Detection and Localization ...
Fourier transform converts each block of data x(t) from the time domain to the frequency domain: X ( f ) . The power spectrum | X ( f ) ... the hydrophone is 1 m above the sea floor (hr=1m). The model ... The generalized cross correlation processing

comparison of signal processing methods: ica and ...
Dec 15, 2011 - and the Wavelet transform as a processing tool, along with the FFT for ... Techniques for signal processing data shown in this paper are the ICA ...

Utility Patent granted for systems and methods for producing organic ...
Utility Patent granted for systems and methods for producing organic cannabis tincture..pdf. Utility Patent granted for systems and methods for producing organic ...

Dental implant systems and methods
May 18, 2001 - Branemark System, 1995 Brochure, Nobelpharma USA, Inc.*. (Continued). Primary ...... preped like a tooth to support a temporary or permanent.

Dental implant systems and methods
May 18, 2001 - 23 depicts an exemplary pick up post that may be used to take an ...... ded; removing the impression member from the ?rst temporary abutment ...

Spandanam_Worksheet of various grammatical terms for SSLC ...
Vanka was writing a letter to his grandfather. 2. He posted the letter without writing the address. 3. ... Conditional Sentences. Conditionals If-clause Main clause. First conditional Simple present ... Spandanam_Worksheet of various grammatical term

INTELLIGENT SYSTEMS FOR DECISION SUPPORT ...
small gap at T = 0 means that rules with T = 0 are excluded from being .... Uncertainties are emphasized here because according to Harvard Business .... identical situations and understand the same phrases differently when hearing or reading .... car

Systems and methods for implementing a sample rate converter using ...
Jan 23, 2007 - Rate Converters with Finite Precision Error Analysis,” Speech Pro. (22) Filed; ... ?gured to estimate the sample rate of an input data stream, a.