DE69919474T2 - Automatische Anpassung der Qualität von Bilddaten um die Antwortzeiten eines Web-Servers zu reduzieren - Google Patents

Automatische Anpassung der Qualität von Bilddaten um die Antwortzeiten eines Web-Servers zu reduzieren Download PDF

Info

Publication number
DE69919474T2
DE69919474T2 DE69919474T DE69919474T DE69919474T2 DE 69919474 T2 DE69919474 T2 DE 69919474T2 DE 69919474 T DE69919474 T DE 69919474T DE 69919474 T DE69919474 T DE 69919474T DE 69919474 T2 DE69919474 T2 DE 69919474T2
Authority
DE
Germany
Prior art keywords
transcoding
proxy
transcoded
image
size
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
DE69919474T
Other languages
English (en)
Other versions
DE69919474D1 (de
Inventor
Pravin Winchester Bhagwat
Richard Yeh-whein c/o IBM United Kin Winchester Han
Richard O. Winchester La Maire
Todd William Winchester Mummert
James Winchester Rubas
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE69919474D1 publication Critical patent/DE69919474D1/de
Publication of DE69919474T2 publication Critical patent/DE69919474T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities

Description

  • Diese Erfindung betrifft Browser-Proxies, die in Dokumenten eingebettete Bildobjekte umwandeln. Allgemeiner betrifft sie ein beliebiges Proxy- oder Gateway-System, das MIME-gekapselte Objekte und das World Wide Web verarbeitet.
  • Transcodierungs-Proxies dienen manchmal als Vermittler zwischen Web-Servern und einer Vielzahl von Client-Einheiten, die über Kommunikationsverbindungen mit sehr unterschiedlichen Eigenschaften verbunden sind. Im Allgemeinen weist ein Transcodierungs-Proxy zwei wesentliche Vorteile auf: eine enorme Verkürzung des Zeitraums für das Herunterladen von Daten bei Verbindungen mit geringer Bandbreite und die individuelle Anpassung der Web-Daten an die Client-Einheit.
  • Mobile Einheiten sind häufig über drahtlose Modemverbindungen geringer Bandbreite oder drahtgebundene Modemverbindungen mittlerer Bandbreite verbunden, die die Betrachtung von umfangreichem Web-Inhalt wie zum Beispiel Bildern aufgrund der sich ergebenden sehr langen Zeiträume für das Herunterladen recht umständlich machen. Außerdem können die Kosten für solche Ladevorgänge von einem entfernten Server auf ein lokales System (Downloads) über gebührenpflichtige drahtlose Weitverkehrsnetze unangemessen hoch sein. Transcodierungs-Web-Proxies können den Umfang von Web-Daten verringern, während der größte Teil ihres semantischen Werts erhalten bleibt. Eine Verkürzung des Zeitraums für das Herunterladen um den Faktor sechs bis zehn kann bei vielen typischen Web-Bildern erreicht werden, ohne dass sie an Verständlichkeit einbüßen.
  • Der zweite bedeutende Vorteil besteht darin, dass solch ein zwischengeschalteter Proxy zuweilen auch Text und Bilder auf die Vielzahl der kleinen, verbindungsschwachen, aber webfähigen mobilen Einheiten, die es heutzutage gibt, individuell zuschneiden kann. Die Fähigkeiten dieser mobilen Einheiten, Web-Inhalte zu empfangen, zu verarbeiten, zu speichern und anzuzeigen, sind sehr unterschiedlich. Angesichts der Verschiedenartigkeit der Client-Einheiten ist es für Herausgeber von Internet-Inhalten schwierig, den Inhalt auf die einzelnen Einheiten zuzuschneiden. Folglich wird ein aktiver Web-Proxy verwendet, um den Web-Inhalt zu transcodieren/zu ändern, damit er die Vorgaben in Bezug auf Auflösung, Farbtiefe und Größe einer Einheit mit kleinem Bildschirm am besten erfüllt und den Umfang der gespeicherten Daten auf einen Bruchteil ihres ursprünglichen Umfangs verringert.
  • Ein typischer Transcodierungs-Web-Proxy kann realisiert werden, indem ein HTTP-Proxy um ein Transcodierungsmodul erweitert wird. Das Transcodierungsmodul ist ein Eingabe-/Ausgabe-System, das ein Datenobjekt (z.B. ein Bild oder eine HTML-Seite) als Eingabe annimmt und es entsprechend einem Satz von gewählten Parametern in ein Objekt mit niedriger Auflösung (z.B. in ein Bild von geringer Qualität oder eine zusammengefasste HTML-Seite) umwandelt. Diese Parameter werden in den Transcoder eingegeben, der den Auflösungsverlust und den Verkleinerungsgrad des Objekts feststellt. In der folgenden Erörterung geht es vorwiegend um Bildobjekte.
  • Um die Vorteile der Transcodierung auf ein Höchstmaß zu steigern, ist es wichtig, das Verhältnis zwischen Qualität und Größe so zu wählen, dass das Bild mit der besten Qualität innerhalb der vom Benutzer angegebenen Verzögerungstoleranz gesendet wird. Die Wahl des richtigen Satzes von Transcodierungsparametern ist jedoch nicht einfach. Erstens ist es schwierig, die Größe des transcodierten Bildes abzuschätzen, da der durch die Transcodierung erzielte Kompressionsgrad vom Inhalt abhängig ist. Beispielsweise können manche JPEG-Dateien um bis zu 80% komprimiert werden, während bei anderen nur eine Kompression von weniger als 5% möglich ist. Dasselbe gilt bei Transformationen von GIF nach GIF oder von GIF nach JPEG. Da die Transcodierung ein rechenintensiver Prozess ist, lohnt sich eine Verarbeitung nur, wenn sich ein hohes Kompressionsverhältnis erzielen lässt. Bei Bildern, die bereits gut komprimiert (oder von geringer Qualität) sind, ist eine Transcodierung gegebenenfalls unnütz.
  • Selbst wenn sich die Größe der transcodierten Ausgabe vorhersagen lässt, machen es Schwankungen bei den Netzwerken schwierig, den Zeitaufwand für das Herunterladen von Bildern vorherzusagen. Da sich die Leistung letztendlich an der vom Benutzer wahrgenommenen Qualität und Latenzzeit bemisst, sind exakte Schätzungen der Zeiträume für das Herunterladen notwendig, um den optimalen Punkt im Verhältnis zwischen Qualität und Größe wählen zu können. Über Best-Effort-Dienstnetzwerke wie zum Beispiel das Internet, bei denen die zur Verfügung stehende Bandbreite unter den Benutzern aufgeteilt wird, sind genaue Schätzwerte der Netzwerkeigenschaften (Bandbreite, Verzögerung, Verlustrate) schwer zu berechnen. Häufig ist die Abweichung so groß, dass die statistischen Schätzwerte nicht aussagekräftig genug sind, um Qualitätsanpassungen vorzunehmen.
  • Ein weiteres Problem, das Entscheidungen bezüglich der Verfahrensweise schwierig macht, ist das Auffinden des Engpasses im Netzwerk. Wenn der Pfad zwischen dem Web-Server und dem Proxy der Engpass ist, hilft eine Transcodierung überhaupt nichts. Im Gegenteil, da diese Operation vom Typ "store and forward" ("Speichern und Weiterleiten") ist, macht sie alles noch schlimmer. Idealerweise sollten Web-Proxies Bilder von Web-Servern an Clients immer dann kontinuierlich übertragen, wenn der Pfad vom Server zum Proxy der Engpass ist. Selbst in den Fällen, in denen der Pfad vom Proxy zum Client der Engpass ist, muss der durch die Verringerung der Größe erzielbare Vorteil gegen den Nachteil der beim Store-and-Forward-Weiterleitungsverfahren entstehenden Verzögerung aufgrund der Transcodierung abgewogen werden.
  • Angesichts der Schwierigkeit, die Netzwerkeigenschaften und den Bildinhalt abzuschätzen, unterstützen Transcodierungs-Proxies eine Anpassung oftmals nur in sehr grober Form. Bei einer Anpassung müssen Transcodierungsparameter geändert werden, die gewöhnlich aus einem vorher festgelegten Satz von Standardwerten oder vom Benutzer ausgewählt werden. Das Problem bei beiden Lösungsansätzen besteht darin, dass das volle Potenzial der Transcodierung nicht ausgeschöpft wird. Vorher festgelegte statische Verfahrensweisen sprechen nicht auf Änderungen der Netzwerkbandbreite an, und vom Benutzer wählbare Entscheidungen hinsichtlich der Verfahrensweise sind aufgrund mangelnder Kenntnisse über den Zustand des Netzwerks wahrscheinlich nicht so optimal. Es gibt kein Verfahren, das dem Benutzer eine Rückmeldung über den Zustand des Netzwerks und auch des Proxy bereitstellt. Mittels schrittweiser Verfeinerung können Benutzer allmählich zu einer optimalen Wahl der Transcodierungsparameter gelangen, aber ein solcher Prozess ist zeitaufwendig und nicht sehr benutzerfreundlich.
  • 1 zeigt ein beispielhaftes Szenario 100 mit einem Transcodierungs-Proxy und verschiedenen Verbindungen und verschiedenen Client-Einheiten. Wie in 1 gezeigt ist, betrachten wir ein beispielhaftes Szenario, bei dem alle Web-Anforderungen und -Antworten für die Clients 130 bis 134 über einen generischen Hypertext-Transfer-Protocol-(HTTP-)Proxy 190 geleitet werden. In dem beispielhaften Szenario von 1 ist es der Vorgang des Herunterladens von großen Datenobjekten, hauptsächlich von Bildern, über die letzte Verbindung 160 bis 164 vom Proxy zum Client, der gewöhnlich die Hauptursache der von den Clients 130 bis 134 erfahrenen Verzögerung bei der Ende-zu-Ende-Antwortzeit ist.
  • Der Transcodierungs-Proxy 190 ermöglicht eine ernorme Verdünnung der Web-Daten, damit Web-Daten wie zellulare digitale Paketdaten (CDPD) 163, die in Abhängigkeit von der Anzahl der Clients, die die Verbindung gemeinsam benutzen, einen Durchsatz von 10 kByte/s oder weniger ermöglichen, über langsame drahtlose Weitverkehrsverbindungen in Echtzeit aufgerufen und dargestellt werden können. Der Client am Ende könnte ein mit allen Funktionen ausgestatteter PC 134 mit einem guten Farbbildschirm sein, so dass das vorrangige Problem in der Verringerung der Bandbreite besteht. Alternativ dazu könnte der Client eine kleine webfähige mobile Einheit 130 bis 132 sein, wobei es in diesem Fall von Vorteil ist, die Web-Daten auf die jeweilige Client-Einheit, insbesondere auf die Bildschirmeigenschaften des Client, zuzuschneiden.
  • Verschiedene Erscheinungsformen von Transcodierungs-Proxies tragen verschiedenen Szenarien Rechnung (d.h. gebührenpflichtige Proxy-Client-Verbindung, starker/schwacher Client-Bildschirm usw.), doch lassen sich alle innerhalb derselben Proxy-Architektur 100 ohne weiteres handhaben.
  • 2 zeigt ein Blockschaltbild einer Ausführungsform des Transcodierungs-Proxy 190, der zur Umwandlung von Objekten auf der Grundlage von Voreinstellungen und statischen Verfahrensweisen, die vom Benutzer festgelegt werden, verwendet wird. Ein Transcodierungs-Proxy 190 wird aufgebaut, indem ein Transcodierungsmodul 240 mit einer HTTP-Proxy-Maschine 220 kombiniert wird. Eine HTTP-Anforderung 222 wird an einem Client 230 erzeugt und vom Proxy 190 an einen Web-Server 210 weitergeleitet, 224. Die Antwortdaten 226 (d.h. HTML-Seiten sowie GIF- und JPEG-Bilder) werden vom Transcoder 240 umgewandelt und dann an den Client 230 weitergeleitet, 228. Üblicherweise werden dem Transcoder 240 mehrere Transcodierungsparameter angegeben, um die gewünschte Qualitäts-/Größenverringerung des in den Antwortdaten 226 enthaltenen Objekts zu erreichen. Die heute eingesetzten Transcodierungs-Proxies verwenden entweder einen statischen Satz von Verfahrensweisen (policies) 250 oder irgendeine Form von vom Benutzer über den Pfad 265 festgelegten Voreinstellungen 260, um die Transcodierungsparameter festzulegen. Wenn ein gleichbleibender Satz von Transcodierungsparametern auf alle Objekte angewendet wird, sind die Ergebnisse nicht immer vorteilhaft. Tatsächlich führt die Transcodierung in vielen Fällen zu einem schlechteren Ergebnis.
  • Die internationale Patentanmeldung WO 98/43177 beschreibt ein System zur dynamischen Transcodierung von Daten, die zwischen einem Netzwerkserver und einem Netzwerk-Client über eine Kommunikationsverbindung übertragen werden. Das System enthält einen Parser, der mit einem Transcodierungs-Dienstleister verbunden und so konfiguriert ist, dass er als Antwort auf ein vorher festgelegtes Auswahlkriterium selektiv den Transcodierungs-Dienstleister aufruft. Das Auswahlkriterium kann eine Eigenschaft der Daten, die übertragen werden, eine Eigenschaft der Kommunikationsverbindung, eine Eigenschaft des Netzwerkservers, eine Eigenschaft des Netzwerk-Clients oder eine Voreinstellung des Benutzers sein. Zu den Netzwerkeigenschaften gehören die Latenzzeit im günstigsten Fall, die Latenzzeit im ungünstigsten Fall und die durchschnittliche Latenzzeit, und zu den Benutzervoreinstellungen gehören das bevorzugte Verhältnis zwischen der Qualität des Inhalts und der Geschwindigkeit. Die Datenmenge, die an den Netzwerk-Client übertragen wird, kann verringert werden, wodurch sich der Vorgang des Herunterladens und die Darstellung des Inhalts beschleunigen lassen.
  • Gemäß der vorliegenden Erfindung wird nun ein Verfahren nach Anspruch 1 bereitgestellt.
  • Vorzugsweise zählt die Bandbreite zu den Netzwerkeigenschaften, und die Prüfung der Netzwerkeigenschaften beinhaltet die Schätzung der Netzwerkbandbreite zwischen dem einen der Server und dem Proxy sowie zwischen dem Proxy und dem einen der Clients.
  • Vorzugsweise zählt die Verzögerung zu den Netzwerkeigenschaften, und der Schritt der Prüfung der Netzwerkeigenschaften beinhaltet die Schätzung der Verzögerung zwischen dem einen der Server und dem Proxy sowie die Verzögerung zwischen dem Proxy und dem einen der Clients.
  • Das Verfahren umfasst vorzugsweise des Weiteren die Bereitstellung einer Rückmeldung an den Benutzer über den Grad der Transcodierung, die an dem Objekt durchgeführt wird, um die transcodierte Form zu bilden.
  • Vorzugsweise beinhaltet der Schritt der Prüfung die Feststellung der Größe des Objekts.
  • In dem beschriebenen Verfahren kann das Objekt vom Typ Bild sein, das ein Bildobjekt bildet, und das Verfahren umfasst des Weiteren die folgenden Schritte: Feststellen der Abmessungen des Bildobjekts und Berechnen des Kompressionsverhältnisses des Bildobjekts. Vorzugsweise werden die Abmessungen des Bildobjekts nach der Fläche des Bildes in Quadratpixeln und das Kompressionsverhältnis nach dem Bits-per-Pixel-(bpp-) Verhältnis des Bildobjekts ermittelt.
  • Der Schritt der Bildung einer transcodierten Form nimmt vorzugsweise eine dynamische Anpassung vor.
  • Der Schritt der Bildung einer transcodierten Form wird vorzugsweise gestartet, bevor der Schritt des Empfangs des Objekts von dem einen der Server abgeschlossen ist. Der empfangene Objekttyp ist vorzugsweise JPEG und bildet ein JPEG-Objekt. Vorzugsweise beinhaltet der Schritt der Bildung einer transcodierten Form die Transcodierung von JPEG-Bildern in JPEG-Bilder, und der Schritt des Versendens der transcodierten Form beginnt damit, dass mindestens eine MCU von JPEG-codierten Ausgangsbilddaten ausgelesen wird, bevor der Schritt des Empfangs des Objekts abgeschlossen ist.
  • Bei dem beschriebenen Verfahren wird der Schritt des Versendens der transcodierten Form vorzugsweise gestartet, nachdem ein erster Teil des empfangenen Objekts verarbeitet wurde und bevor der Schritt des Empfangs des Bildobjekts von dem einen der Server abgeschlossen ist.
  • Der Schritt des Versendens der transcodierten Form wird vorzugsweise gestartet, bevor der Schritt der Bildung einer transcodierten Form des Objekts abgeschlossen ist.
  • In einer zweiten Erscheinungsform stellt die vorliegende Erfindung ein Verfahren für einen Proxy zur Bildung einer transcodierten Form eines Objekts bereit, das von einem Server in Erfüllung einer Anforderung von einem Client für ein von dem Server lieferbares Objekt empfangen wird, wobei das Verfahren die dynamische Anpassung von Parametern zur Transcodierung des Objekts für den Client, die Bildung einer transcodierten Form des Objekts und das Versenden der transcodierten Form an den Client umfasst. Der Schritt der Anpassung von Parametern beinhaltet vorzugsweise die Feststellung von mindestens einer Eigenschaft des Objekts. Eine Eigenschaft ist vorzugsweise ein Objekt-Kopfbereich, wobei der Objekt-Kopfbereich Informationen über die Größe und die Art des Objekts liefert. Das Verfahren umfasst vorzugsweise ferner den Vergleich der Größe des Objekts mit einem als "size threshold" bezeichneten Schwellenwertparameter. Der Schritt der Anpassung von Parametern beinhaltet vorzugsweise die Erfassung der vorhandenen Netzwerkeigenschaften zwischen dem Server und dem Proxy und zwischen dem Proxy und dem Client. Eine der Eigenschaften ist vorzugsweise die Netzwerkbandbreite, und der Schritt der Anpassung beinhaltet die Schätzung der Netzwerkbandbreite zwischen dem Server und dem Proxy sowie zwischen dem Proxy und dem Client.
  • Bei dem beschriebenen Verfahren hängt die transcodierte Form vorzugsweise von der geschätzten Bandbreite ab. Der Schritt der Anpassung beinhaltet vorzugsweise auch den Abruf von Voreinstellungen des Benutzers, wobei die transcodierte Form von den Voreinstellungen abhängt. Der Schritt der Anpassung beinhaltet vorzugsweise die Prüfung des Inhalts des Objekts. Das Objekt ist vorzugsweise vom Typ Bild, das ein Bildobjekt bildet, und die Prüfung des Inhalts des Bildobjekts beinhaltet die Feststellung der Abmessungen des Bildes.
  • Bei dem beschriebenen Verfahren hängt der Schritt der Anpassung vorzugsweise von der Ermittlung des Kompressionsverhältnisses des Bildobjekts ab. Außerdem ist die Art des Bildobjekts vorzugsweise GIF, und der Schritt der Anpassung hängt von einem Vergleich des Kompressionsverhältnisses mit einem vorher festgelegten Verfahrensschwellenwert mit der Bezeichnung "gif_threshold" ab.
  • Das beschriebene Verfahren umfasst darüber hinaus vorzugsweise die Vorhersage von mindestens einem Parameter der transcodierten Form des Objekts. Die transcodierte Form ist vorzugsweise außerdem gleich einer ursprünglichen Form des Objekts. Vorzugsweise beinhaltet mindestens einer der Parameter eine Größe der transcodierten Form. Ebenfalls vorzugsweise beinhaltet mindestens einer der Parameter den für die Transcodierung des Objekts aufgewendeten Zeitraum.
  • In einer dritten Erscheinungsform stellt die vorliegende Erfindung ein Verfahren zur Vorhersage von Parametern einer transcodierten Form eines Objekts bereit, wobei das Objekt eine Anfangsgröße und Anfangsabmessungen hat und von einem Server in Erfüllung einer von einem Client gestellten Anforderung für das Objekt empfangen wird, wobei das Verfahren Folgendes umfasst: Berechnen des bpp-Verhältnisses des Objekts, Erfassen eines Satzes von Statistiken von einer Vielzahl von zuvor transcodierten Objekten und Verwenden des Satzes von Statistiken und des bpp-Verhältnisses zur Vorhersage der Parameter.
  • In einem beschriebenen Verfahren ist mindestens einer der Parameter vorzugsweise die Größe, und der Satz von Statistiken beinhaltet Größen einer Vielzahl von zuvor transcodierten Objektstatistiken.
  • Das Objekt ist vorzugsweise vom Typ Bild, und der Satz von Statistiken beinhaltet die Bildqualität. Die Vielzahl der zuvor transcodierten Objekte wird vorzugsweise von einer vorher festgelegten Folge von Bildern ausgewählt, die als Referenz (benchmark) dient.
  • In einem beschriebenen Verfahren nimmt der Schritt der Verwendung des Satzes von Statistiken und des bpp-Verhältnisses vorzugsweise eine dynamische Aktualisierung des Satzes von Statistiken unter Verwendung der Statistiken des Objekts vor, das gerade transcodiert wird. Mindestens einer der Parameter ist vorzugsweise die Dauer zur Bildung einer transcodierten Form eines Objekts, und der Satz von Statistiken beinhaltet die Dauer zur Bildung einer Vielzahl von zuvor transcodierten Objekten.
  • In einer vierten Erscheinungsform stellt die vorliegende Erfindung ein Transcodierungs-Proxy-System bereit, um das Durchsuchen (Browsing) einer Vielzahl von Clients und einer Vielzahl von Servern, die über ein Kommunikationsnetzwerk verbunden sind, zu vereinfachen, wobei der Proxy eine HTTP-Proxy-Maschine umfasst, um eine Anforderung von einem der Clients für ein Objekt zu empfangen, das auf einem der Server gespeichert ist, und um das Objekt von dem einen der Server abzurufen, einen Objekt-Transcoder, um unter Verwendung eines Satzes von Parametern für die Transcodierung eine transcodierte Form des Objekts zu bilden, ein dynamisches Verfahrensmodul (dynamic policy module), um den Satz der Transcodierungsparameter festzulegen, ein Bildgrößen- und Verzögerungsvorhersagemodul, um Eigenschaften des Objekts zu erfassen, ein Modul für die Benutzervoreinstellungen, um Qualitäts-Voreinstellungen, die von einem Benutzer von dem einen der Clients festgelegt werden, zu erfassen, und ein Bandbreitenschätzmodul, um die verfügbare Netzwerkbandbreite zu schätzen, wobei das dynamische Verfahrensmodul die Parameter der Transcodierung unter Verwendung der vom Bildgrößen- und Verzögerungsvorhersagemodul, dem Modul für die Benutzervoreinstellungen und dem Bandbreitenschätzmodul empfangenen Eingabe dynamisch anpasst, um eine höhere Benutzerzufriedenheit zu erreichen, und wobei das Transcodierungssystem eine Rückmeldung an den Benutzer über den Grad der durchgeführten Transcodierung bereitstellt.
  • Das Modul für die Benutzervoreinstellungen erfasst vorzugsweise außerdem Eigenschaften wie zum Beispiel die Größe und die Auflösung des Bildschirms und die Geschwindigkeit der CPU von der einen der Einheiten und stellt dem dynamischen Verfahrensmodul diese Eigenschaften zur Verfügung.
  • In dem beschriebenen System erfasst das Bandbreitenschätzmodul vorzugsweise Überwachungsprotokolle (traces) von zuvor hergestellten Netzwerkverbindungen zwischen dem einen der Server und dem Proxy, es erfasst Überwachungsprotokolle von zuvor hergestellten Netzwerkverbindungen zwischen dem Proxy und dem einen der Clients, und es schätzt den Zeitraum für das Herunterladen des Objekts, indem es die erfassten Überwachungsprotokolle statistisch auswertet.
  • Die statistische Auswertung, die zur Schätzung der Bandbreite zwischen dem einen der Server und dem Proxy dient, beruht vorzugsweise auf der Berechung eines statistischen Maßes wie zum Beispiel des Zentralwerts oder des Mittelwerts der Zeiträume für das Herunterladen oder des Herunterlademodus von zuvor abgerufenen Objekten, die aus den erfassten Überwachungsprotokollen ermittelt werden.
  • Die statistische Auswertung, die zur Schätzung der Bandbreite zwischen dem Proxy und dem einen der Clients dient, beruht vorzugsweise auf der Berechnung der gesamten Bandbreite aller aktiven Verbindungen zwischen dem Proxy und dem einen der Clients. Das System umfasst vorzugsweise außerdem die Anzeige einer Schiebeleiste auf dem Bildschirm von dem einen der Clients, um die vom Benutzer festgelegten Voreinstellungen zu erfassen. In einem System wie dem beschriebenen kann der Benutzer des einen der Clients durch die Verwendung einer grafischen Benutzeroberfläche mit einer Schiebeleiste vorzugsweise das Verhältnis zwischen dem Zeitraum für das Herunterladen und der Datenqualität angeben. Der Benutzer des einen der Clients kann durch die Verwendung einer grafischen Benutzeroberfläche mit einer Schiebeleiste, die einen speziellen Schalter enthält, um Farbe oder Graustufen als gewünschte Ausgabeform zu wählen, vorzugsweise das Verhältnis zwischen dem Zeitraum für das Herunterladen und der Bildqualität angeben. Der Benutzer des einen der Clients kann durch die Verwendung einer grafischen Benutzeroberfläche mit einer Schiebeleiste vorzugsweise außerdem den Wunsch angeben, eine Zielantwortzeit einzuhalten, so dass das System automatisch die Datenqualität (und damit den Umfang der heruntergeladenen Daten) verringert, um dynamische Schwankungen der Bandbreite auf dem weg zu dem einen der Clients auszugleichen. Die Schiebeleiste der grafischen Benutzeroberfläche wird vorzugsweise auch als Ausgabeschnittstelle verwendet, um dem Benutzer die optimale Wahl der Transcodierungsparameter anzuzeigen.
  • In einer fünften Erscheinungsform stellt die vorliegende Erfindung einen Herstellungsgegenstand bereit, der einen von einem Rechner nutzbaren Datenträger mit einem darauf befindlichen rechnerlesbaren Programmcodemittel umfasst, um eine dynamische Anpassung der transcodierten Form eines Objekts in einem Transcodierungs-Proxy zu veranlassen, wobei das rechnerlesbare Programmcodemittel in dem Herstellungsgegenstand ein rechnerlesbares Programmcodemittel umfasst, um einen Rechner zur Durchführung von Folgendem zu veranlassen: Veranlassen eines Proxy zum Empfang eines zu einem Benutzer gehörenden Objekts von einem Server, Ermitteln von Parametern des Objekts, Abrufen der Voreinstellungen des Benutzers, Erfassen der vorhandenen Netzwerkeigenschaften, Abrufen von Verfahrensschwellenwerten für die Transcodierung, Treffen einer Verfahrensentscheidung auf der Grundlage von Objektparametern, Benutzervoreinstellungen, Netzwerkeigenschaften und Verfahrensschwellenwerten, Bilden eines transcodierten Objekts, Bereitstellen einer Rückmeldung an den Benutzer über den Grad der an dem Objekt durchgeführten Transcodierung und Senden des transcodierten Objekts an den Benutzer.
  • In einer sechsten Erscheinungsform stellt die vorliegende Erfindung einen Herstellungsgegenstand bereit, der einen von einem Rechner nutzbaren Datenträger umfasst, auf dem sich ein rechnerlesbares Programmcodemittel befindet, um einen Transcodierungs-Proxy zu veranlassen, das Durchsuchen (Browsing) einer Vielzahl von Client-Einheiten und einer Vielzahl von Servern, die über ein Kommunikationsnetzwerk verbunden sind, zu vereinfachen, wobei das rechnerlesbare Programmcodemittel in dem Herstellungsgegenstand ein rechnerlesbares Programmcodemittel umfasst, um einen Rechner zur Durchführung von Folgendem zu veranlassen: Empfangen einer Anforderung von einer der Client-Einheiten für ein Objekt, das auf einem der Server gespeichert ist, Weiterleiten der Anforderung für das Objekt an den einen der Server, Empfangen des Objekts von dem einen der Server, Prüfen von Voreinstellungen, die von einem Benutzer von der einen der Client-Einheiten festgelegt wurden, Prüfen des Inhalts des Objekts, Prüfen von Eigenschaften des Kommunikationsnetzwerks, Wählen eines Satzes von Transcodierungsparametern, Bilden einer transcodierten Form des Objekts und Senden der transcodierten Form an den einen der Clients.
  • Das rechnerlesbare Programmcodemittel in dem Herstellungsgegenstand umfasst vorzugsweise des Weiteren ein rechnerlesbares Programmcodemittel, um einen Rechner zu veranlassen, dem Benutzer eine Rückmeldung über den Grad der Transcodierung bereitzustellen, die an dem Objekt durchgeführt wird, um die transcodierte Form zu bilden. Das rechnerlesbare Programmcodemittel in dem Herstellungsgegenstand umfasst vorzugsweise ferner ein rechnerlesbares Programmcodemittel, um einen Rechner zu veranlassen, die Abmessungen des Objekts festzustellen und das Kompressionsverhältnis des Objekts zu berechnen. Das rechnerlesbare Programmcodemittel in dem Herstellungsgegenstand umfasst überdies vorzugsweise ein rechnerlesbares Programmcodemittel, um einen Rechner zu veranlassen, den Schritt der Bildung einer transcodierten Form zu beginnen, bevor der Schritt des Empfangs des Objekts von dem einen der Server abgeschlossen ist.
  • In einer siebten Erscheinungsform stellt die vorliegende Erfindung ein Rechnerprogrammprodukt bereit, das einen von einem Rechner nutzbaren Datenträger umfasst, auf dem sich ein rechnerlesbares Programmcodemittel befindet, um einen Proxy zu veranlassen, eine transcodierte Form eines Objekts zu bilden, das von einem Server in Erfüllung einer Anforderung von einem Client für ein von dem Server lieferbares Objekt empfangen wird, wobei das rechnerlesbare Programmcodemittel in dem Rechnerprogrammprodukt ein rechnerlesbares Programmcodemittel umfasst, um einen Rechner zur Durchführung von Folgendem zu veranlassen: Dynamisches Anpassen von Parametern, um das Objekt für den Client zu transcodieren, Bilden einer transcodierten Form des Objekts und Senden der transcodierten Form an den Client.
  • Das rechnerlesbare Programmcodemittel in dem Rechnerprogrammprodukt umfasst vorzugsweise darüber hinaus ein rechnerlesbares Programmcodemittel, um einen Rechner zur Erfassung der vorhandenen Netzwerkeigenschaften zwischen dem Server und dem Proxy und zwischen dem Proxy und dem Client zu veranlassen. Das rechnerlesbare Programmcodemittel in dem Rechnerprogrammprodukt umfasst vorzugsweise ferner ein rechnerlesbares Programmcodemittel, um einen Rechner zur Anpassung von Parametern für eine Transcodierung auf der Grundlage der geschätzten Bandbreite und der Voreinstellungen des Benutzers zu veranlassen.
  • In einer achten Erscheinungsform stellt die vorliegende Erfindung eine maschinenlesbare Programmspeichereinheit bereit, die physisch ein Programm mit Befehlen enthält, die von der Maschine ausgeführt werden können, um Verfahrensschritte zur Vorhersage von Parametern einer transcodierten Form eines Objekts durchzuführen, wobei das Objekt eine Anfangsgröße und Anfangsabmessungen hat und wobei das Objekt von einem Server in Erfüllung einer von einem Client gestellten Anforderung für das Objekt empfangen wird, wobei die Verfahrensschritte Folgendes umfassen: Berechnen des bpp-Verhältnisses des Objekts, Erfassen eines Satzes von Statistiken einer Vielzahl von zuvor transcodierten Objekten, Verwenden des Satzes von Statistiken und des bpp-Verhältnisses, um die Parameter vorherzusagen.
  • Der Verfahrensschritt, der den Satz von Statistiken verwendet, umfasst vorzugsweise des Weiteren die Aktualisierung des Satzes von Statistiken, wobei die Statistiken der aktuell transcodierten Objekte verwendet werden.
  • Eine Erscheinungsform der vorliegenden Erfindung besteht in der Bereitstellung von Verfahren, Einheiten und Systemen, die dazu dienen, Transcodierungsparameter dynamisch anzupassen, um die Vorteile der Transcodierung zu vergrößern. Die Verfahren zur Anpassung sind so ausgelegt, dass sie der Verschiedenartigkeit der Netzwerkeigenschaften und den unterschiedlichen Größen der transcodierten Bilder Rechnung tragen.
  • In einer Ausführungsform enthält die Erfindung drei neue Komponenten: einen Bildgrößenvorhersager, einen Netzwerkbandbreiten-Analysator und ein Verfahrensmodul. Bevor eine Transcodierungsaktion eingeleitet wird, fragt das Verfahrensmodul den Bildgrößenvorhersager nach der geschätzten Größe des Ausgangsbildes ab. Der Bandbreitenanalysator wird abgefragt, um einen Schätzwert der Bildübertragungsdauer vom Server zum Proxy und vom Proxy zum Client abzurufen. Auf der Grundlage der abgerufenen Schätzwerte entscheidet der Proxy, ob das Bild transcodiert wird. Darüber hinaus kann das Verfahrensmodul auch den optimalen Punkt im Verhältnis zwischen der Qualität und der Größe berechnen, der die vom Benutzer festgelegten Leistungskriterien (z.B. kürzere Antwortzeit, höhere Qualität) erfüllen würde.
  • Eine weitere Erscheinungsform der vorliegenden Erfindung besteht in der Bereitstellung eines Verfahrens und/oder einer Vorrichtung, mit dem/der der Transcodierungs-Proxy das Verhältnis zwischen Qualität und Größe je nach Bild- und/oder Client anpassen kann. Der adaptive Transcoder wählt verschiedene Parameter für jedes Objekt und ermöglicht Leistungsverbesserungen.
  • Noch eine weitere Erscheinungsform dieser Erfindung stellt einen allgemeinen Rahmen bereit, um Verfahrensentscheidungen zu treffen, wobei die verfügbare Bandbreite, der Inhalt und die Art des Bildes sowie die Benutzervoreinstellungen berücksichtigt werden. Der Verwalter des Proxy trifft unter vielen verschiedenen Optimierungszielen eine Auswahl, um vom System eine verbesserte Leistung zu erhalten. In einer Ausführungsform, wenn der Durchsatz des Proxy-Transcoders der Engpass ist, wird das Verfahrensmodul angewiesen, umsichtig mit den CPU-Ressourcen umzugehen, um die Antwortzeit für alle Benutzer zu verringern. Ein vorteilhaftes Element der Erfindung ist die automatisierte Entscheidungsfindung, um Benutzer von der Aufgabe der aktiven Steuerung der Verfahrenssteuerkomponente (policy engine) des Proxy zu entbinden.
  • In noch einer weiteren Erscheinungsform der vorliegenden Erfindung wird ein Verfahren zur Erzeugung einer Rückmeldung an den Benutzer über die Wahl der optimalen Transcodierungsparameter bereitgestellt. In einem Beispiel der Ausführungsform stellt das Transcodierungssystem dem Benutzer eine Rückmeldung bereit, indem es die Position der Schiebeleiste für die Benutzervoreinstellungen dynamisch anpasst. Die Schiebeleiste für die Benutzervoreinstellungen dient sowohl als Eingabe- als auch als Ausgabeeinheit.
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung wird nun anhand eines Beispiels und mit Bezug auf die Zeichnungen beschrieben, in denen:
  • 1 ein beispielhaftes Szenario mit einem Transcodierungs-Proxy mit unterschiedlichen Verbindungen und unterschiedlichen Client-Einheiten zeigt;
  • 2 ein Blockschaltbild eines Transcodierungs-Proxy zeigt, der zur Umwandlung von Objekten entsprechend vom Benutzer angegebener Voreinstellungen und statischer Verfahren dient;
  • 3 ein Blockschaltbild eines Beispiels eines Transcodierungs-Proxy zeigt, der gemäß der vorliegenden Erfindung so abgeändert wurde, dass er einen Bildgrößenvorhersager, eine Bandbreitenschätzeinheit, ein dynamisches Verfahrensmodul und einen Benutzerrückmeldungsgenerator enthält;
  • 4 ein beispielhaftes Blockschaltbild eines beispielhaften HTTP-Proxy mit Cachespeicher- und Transcodierungsmodulen gemäß der vorliegenden Erfindung zeigt;
  • 5 ein beispielhaftes Flussdiagramm eines dynamischen Transcodierungs-Verfahrensmoduls gemäß der vorliegenden Erfindung zeigt;
  • 6 einen beispielhaften Web-Anforderungs-/Antwortzyklus zeigt, der einen Transcodierungs-Proxy gemäß der vorliegenden Erfindung verwendet;
  • 7 eine beispielhafte Betriebsweise zeigt, bei der die Transcodierung gemäß der vorliegenden Erfindung nützlich ist;
  • 8 ein beispielhaftes Flussdiagramm einer beispielhaften Verfahrensfunktion gemäß der vorliegenden Erfindung zeigt;
  • 9 ein beispielhaftes Blockschaltbild eines beispielhaften Bildgrößen-Vorhersagemoduls gemäß der vorliegenden Erfindung zeigt;
  • 10 ein beispielhaftes Blockschaltbild eines beispielhaften Bandbreitenvorhersagemoduls gemäß der vorliegenden Erfindung zeigt;
  • 11 eine Eingabe-/Rückmeldungs-Benutzerschnittstelle gemäß der vorliegenden Erfindung zeigt;
  • 12 ein beispielhaftes Zeitdiagramm einer kontinuierlichen Transcodierung gemäß der vorliegenden Erfindung darstellt.
  • 3 zeigt ein Blockschaltbild 300 einer beispielhaften Ausführungsform von Änderungen an dem Transcodierungs-Proxy 190 gemäß der vorliegenden Erfindung. Ein Vergleich von 3 mit 2 zeigt, dass das statische Verfahrensmodul 250 in 2 gegen ein dynamisches Verfahrensmodul 370 in 3 ausgetauscht wurde. Das dynamische Verfahrensmodul 370 hat den Zweck, Entscheidungen hinsichtlich des Zeitpunkts, zu dem die Transcodierung ein- und ausgeschaltet werden soll, und der Frage, welches Transcodierungsverfahren (d.h. der Transcodierungsalgorithmus zusammen mit seinen Parametern) verwendet werden soll, zu treffen. Das dynamische Verfahrensmodul 370 ist über eine Schnittstelle auch mit einem Bildgrößen- und Verzögerungsvorhersager 375, einer Bandbreitenschätzeinheit 380 und einer Benutzerrückmeldungs-Bereitstellungseinheit 390 verbunden. In der gezeigten Ausführungsform legt das Verfahrensmodul 370 mehrere Kriterien zugrunde, unter anderem: die Eigenschaften der Daten (z.B. die Größe der Bilder, die aktuelle Codierleistung, die Rolle beim Aufbau der HTML-Seite), die vom Inhaltauswertungs-Flussdiagramm (in 5 gezeigt) ermittelt werden, den aktuellen Schätzwert der Bandbreite auf den Verbindungen vom Proxy zum Client und vom Server zum Proxy (in 10 gezeigt), die Eigenschaften des Client, insbesondere das Anzeigevermögen des Bildschirms des Client, sowie die Benutzervoreinstellungen hinsichtlich der bevorzugten Darstellung der Daten (in 11 als die Benutzervoreinstellungen mittels Schiebeleiste gezeigt).
  • Die in den 5, 10 und 11 gezeigten Elemente werden nachstehend beschrieben. Insbesondere stellen die Benutzervoreinstellungen mittels Schiebeleiste ein Verfahren zur interaktiven Kommunikation mit dem Transcodierungs-Proxy bereit, um das Verhältnis zwischen der Bildqualität und dem Zeitraum für das Herunterladen dynamisch zu ändern. Außer dass sie als Eingabeschnittstelle dient, hat die Schiebeleiste (1140, 1150, 1160 von 11) auch die Funktion einer Ausgabeschnittstelle, wobei sie die vom dynamischen Verfahrensmodul 370 empfangene Rückmeldung 390 anzeigt.
  • 4 zeigt ein Blockschaltbild 400, das eine beispielhafte Funktion eines Mehrfachauflösungs-Cachespeichers 410 in einem Transcodierungs-HTTP-Proxysystem 400 gemäß der vorliegenden Erfindung veranschaulicht. Cachespeicher sind bei HTTP-Proxies hilfreich, da sie bei wiederholten Datenanforderungen (von demselben oder von verschiedenen Clients) für dasselbe Datenobjekt kürzere Antwortzeiten ermöglichen. Viele verschiedene Verfahren können angewendet werden, um sicherzustellen, dass die im Cachespeicher abgelegten Daten auf dem neuesten Stand sind. Bei dem beispielhaften Transcodierungssystem 400 mit Zwischenspeicherung der Daten im Cachespeicher speichert der Mehrfachauflösungs-Cachespeicher 410 eine ursprüngliche Version der Daten sowie andere mögliche Formen der Daten einschließlich Versionen mit verringerter Auflösung, die für bestimmte Arten von Einheiten transcodiert wurden.
  • Als Beispiel betrachten wir nochmals den Fall eines Bilddatenobjekts, doch versteht der Fachmann, dass diese Verfahren auch auf andere Datenarten angewendet werden können. Wir beschreiben ein Verfahren zur Speicherung, Kennzeichnung und zum Abruf von verschiedenen Formen der Daten im Zusammenhang mit einem Transcodierungs-Proxysystem mit Zwischenspeicherung der Daten im Cachespeicher.
  • Bezug nehmend auf 4 wird davon ausgegangen, dass vom Server 210 als Antwort auf eine Anforderung von einem Client 230 ein JPEG-Bild empfangen wird. Dieses Bild wird aus dem verlustbehafteten JPEG-Codierformat in eine Bitmap-Darstellung des Bildes decodiert. Der Fachmann in der Bildverarbeitung versteht, dass der JPEG-Codierstandard Bilder beschreibt, die Koeffizienten verwenden, die diskrete Cosinus-Transformierte (DCTs) gewichten, so dass im Allgemeinen ein rechenintensiver Decodierschritt notwendig ist, damit man die tatsächlichen Farben eines jeden Pixels erhält. Diese Bitmap erfordert eine größere Speicherkapazität als das ursprüngliche JPEG-Bild. Wenn der Cachespeicher jedoch ausreichend groß ist, kann es sinnvoll sein, dieses vergrößerte Bild zu speichern (über den Datenpfad 420), um den rechenintensiven Schritt der JPEG-Decodierung zu vermeiden, wenn eine transcodierte Version desselben Bildes später benötigt wird, jedoch mit anderen Transcodierungsparametern als bei der ersten Anforderung. In einem zweiten Schritt wird das JPEG-Bild auf der Grundlage der Transcodierungsparameter (d.h. der Farbtiefe, des Skalierungsfaktors und des JPEG-Qualitätsfaktors) erneut codiert. Das Bild kann erneut als JPEG-Bild oder in einem alternativen Codierformat codiert werden. Die endgültige transcodierte Version des Bildes wird ebenfalls über den Datenpfad 420 im Mehrfachauflösungs-Cachespeicher 410 zwischengespeichert.
  • Wenn weitere Datenanforderungen gestellt werden, prüft der HTTP-Proxy 220 in der beispielhaften Ausführungsform zuerst seinen Cachespeicher 410, um festzustellen, ob eine auf den neuesten Stand gebrachte Version des Datenobjekts mit der angeforderten Auflösung oder dem angeforderten Transcodierungsgrad verfügbar ist. Jedes Objekt in dem Mehrfachauflösungs-Cachespeicher 410 wird mit einer Versionsangabe gespeichert, die Folgendes enthält: eine URL-Beschreibung, einen Zeitstempel für das Datenobjekt und die Eigenschaften des Objekts. Bei einem JPEG-Bild gehören die Farbtiefe, der Skalierungsfaktor und der JPEG-Qualitätsfaktor zu den Objekteigenschaften. Eine alternative Ausführungsform trägt einen Hinweis, dass das JPEG-Bild decodiert und in seinem Bitmap-Format gespeichert wurde oder dass es umgewandelt und als GIF mit verschiedenen Eigenschaften gespeichert wurde.
  • Wenn eine auf den neuesten Stand gebrachte Version des Objekts von der angeforderten Art und mit der angeforderten Auflösung verfügbar ist, wird diese Version an den Client zurückgesendet. wenn eine solche Version nicht verfügbar ist, aber eine auf den neuesten Stand gebrachte Version des Objekts entweder in seiner ursprünglichen JPEG-Form oder der decodierten Bitmap-Form vorhanden ist, wird diese Version an den Transcoder 240 mit der Angabe ihrer Eigenschaften zurückgeschickt. Dadurch kann der Transcoder 240 die gewünschte Version des Objekts erzeugen, die an den Client 230 zurückgeschickt und über den Datenpfad 420 im Mehrfachauflösungs-Cachespeicher 410 gespeichert wird.
  • Es sei erwähnt, dass es mehrere Erweiterungen dieses Schemas gibt, die für den Fachmann offensichtlich sind. Eine Erweiterung verwendet statt des ursprünglichen Datenobjekts eine bereits transcodierte Version des Objekts, um eine weitere Version des Objekts mit noch geringerer Auflösung zu erzeugen. Verfahren zur Verwaltung der verschiedenen Versionen von Datenobjekten mit unterschiedlicher Auflösung in einem Cachespeicher sind in der am 13. Februar 1998 eingereichten US-Patentanmeldung mit dem Titel "Conserving Storage Space by Means of Low Resolution Objects" von R. O. LaMaire und J. T. Robinson, Aktenzeichen Y0997308, näher beschrieben.
  • 5 zeigt ein beispielhaftes Flussdiagramm für das dynamische Verfahrensmodul 370 der 3 und 4. 5 zeigt auch, wie das Verfahrensmodul 370 über eine Schnittstelle mit der HTTP-Proxy-Maschine 220 und dem Objekt-Transcoder 240 von 3 verbunden ist. Die nachstehend beschriebenen Verfahren gelten für viele Arten von Inhalten, darunter Text, Bilder, Audio und Video. Die folgende Erörterung konzentriert sich jedoch nur auf Bilddatenarten. Für den Fachmann ist es offensichtlich, dass diese Konzepte und dynamischen Verfahren auch auf andere Medienarten angewendet werden können.
  • 5 zeigt, dass die HTTP-Proxy-Maschine 220 auf der Grundlage des vom Server 210 empfangenen Antwortkopfbereichs zuerst die Größe des Objekts 510 feststellt. Wenn die Art des Inhalts der Antwort "Bild/*" 520 ist, reicht die Proxy-Maschine 220 die Kennung für das Objekt an das dynamische Verfahrensmodul 370 zur weiteren Auswertung weiter. Im Verfahrensmodul 370 wird die Größe des Eingangsobjekts mit einem vorher konfigurierten Schwellenwert mit der Bezeichnung "size threshold" 530 verglichen. Wenn das Objekt kleiner als "size threshold" ist oder die Art des Inhalts nicht "Bild/*" 520 ist, wird das Objekt nicht transcodiert, sondern ohne Änderungen am Inhalt an den Client weitergeleitet, 515. Kleine Objekte (wie zum Beispiel Aufzählungspunkte, Miniaturbilder, Logos usw.), wie man sie im Web findet, sind üblicherweise GIF-Objekte, die aufgrund der GIF-Codierung bereits stark komprimiert sind. Mit einer Transcodierung solcher Objekte lässt sich im Allgemeinen keine weitere Kompression erzielen.
  • Wir wandeln GIF-Bilder in GIF- oder JPEG-Bilder um, die verkleinert und/oder deren Farbtiefe verringert wird (die Wahl von GIF oder JPEG als Endformat hängt von den Bildeigenschaften ab). Darüber hinaus wandeln wir JPEG-Bilder in JPEG-Bilder um, deren JPEG-Qualität, Größe und/oder Farbtiefe verringert wird. JPEG-Qualität bezieht sich auf einen Transcodierungsparameter, der verwendet wird, um den Grad festzulegen, bis zu dem die beim JPEG-Codierungsstandard verwendeten Koeffizienten der diskreten Cosinus-Transformationen quantisiert werden. Es wurde festgestellt, dass der Parameter für die JPEG-Qualität auch einen hohen Vorhersagewert für die wahrgenommene Bildqualität hat. Dieser Parameter schwankt im Bereich zwischen 1 und 100, wobei 100 eine sehr hohe Qualität darstellt. JPEG-Bilder, die man im Web findet, haben gewöhnlich eine JPEG-Qualitätsparameter von 75.
  • Bei großen Bildern sind die Art der Bildcodierung (JPEG oder GIF) und die Leistungsfähigkeit der Codierung wichtige Faktoren bei der Transcodierungsentscheidung. Da JPEG ein verlustbehaftetes Kompressionsverfahren ist, ist eine Verkleinerung immer möglich, indem der Qualitätsfaktor verringert wird. Eine ähnliche Qualitätsverringerung kann jedoch nicht auf GIF-Dateien angewendet werden, da GIF ein verlustfreies Kompressionsverfahren ist. Um eine Qualitätsverringerung zu erreichen, muss eine GIF-Datei zuerst decodiert und anschließend als JPEG-Bild mit verringerter Qualität neu codiert werden. Dieses Verfahren macht jedoch nicht immer eine Verkleinerung möglich. Das GIF-Format ist gewöhnlich bei der Codierung von Land-/Straßenkarten, Logos und Zeichnungen leistungsfähiger, während JPEG bei der Codierung von natürlichen Bildern leistungsfähiger ist. Eine Umwandlung von GIF nach JPEG ist nur sinnvoll, wenn das ursprüngliche GIF-Bild nicht wirksam codiert wurde.
  • Wir definieren Bits pro Pixel (bpp) als ein Maß für die Leistungsfähigkeit der Kompression. Bpp wird als das Verhältnis der Größe der Bilddatei zum Bildbereich in Pixel berechnet. Im Verarbeitungsschritt 540 werden die X- und Y-Abmessungen und der bpp-Wert des Eingangsbildes berechnet, indem der Kopfbereich des Bildes ausgewertet wird. wenn das Eingangsobjekt vom Typ "Bild/jpg" 550 ist, wird immer eine Transcodierung durchgeführt. Wenn die Art des Inhalts jedoch "Bild/gif" 525 ist, werden nur diejenigen Objekte transcodiert, die ein bpp-Verhältnis ergeben, das größer als "gif_threshold" 535 ist. GIF-Dateien, die nicht sehr wirksam codiert wurden, weisen einen bpp-Wert auf, der größer als "gif_threshold" ist. Folglich ist der Entscheidungsschritt 535 bei der Feststellung von komprimierbaren GIF-Dateien mit hoher Genauigkeit sehr erfolgreich. Zwar ist dies in 5 nicht gezeigt, doch ist es für den Fachmann offensichtlich, dass auch andere Transcodierungsverfahren wie zum Beispiel Skalierung und Dateikürzung (für schrittweise codierte Daten) für stark komprimierte GIFs verwendet werden können.
  • Ein wichtiger Aspekt der vorgeschlagenen Erfindung besteht darin, dass die Entscheidungsschritte 510 bis 565 durchgeführt werden, sobald der Kopfbereich des Bildes empfangen wird. Wenn die Entscheidung dahingehend ausfällt, dass keine Transcodierung durchgeführt wird, können Bildsegmente weitergeleitet werden, sobald sie vom Server empfangen wurden, ohne dass eine Verzögerung aufgrund des Store-and-Forward-Weiterleitungsverfahrens entsteht. Ebenso können Bilder, wenn eine Transcodierung durchgeführt werden soll, entweder im Pufferspeicher abgelegt und dann transcodiert werden ("Store-and-Forward"-Transcodierung), oder jedes Segment kann direkt, ohne vorherige Ablage im Pufferspeicher, transcodiert werden (kontinuierliches Transcodierungsverfahren).
  • Nachdem ein Bild erkannt wurde, das komprimiert werden kann, beinhaltet der nächste Schritt die Ermittlung, in welchem Umfang das ausgewählte Bild transcodiert werden soll. Die Verfahrensfunktion 565 ist für die Erfassung der Eingabe von drei verschiedenen Quellen (Bildgrößenvorhersager 375, Bandbreitenschätzeinheit 380, Benutzervoreinstellung-Auswahleinheit 260) und die anschließende Auswahl der Transcodierungsparameter entsprechend der in 8 gezeigten Schritte verantwortlich. Die gewählten Parameter bestimmen den Umfang und die Arten der Kompression, die vom Objekt-Transcoder 240 durchgeführt wird. Beispielsweise bestimmt der Skalierungsparameter den Betrag, um den die Abtastrate eines Bildes verringert wird. Quantisierungsparameter steuern die Art und Weise, in der ein Bild im Pixel- und/oder im Frequenzbereich quantisiert wird. Die Anzahl der Farben in einem in Farbe dargestellten Bild kann verringert werden, oder ein 24-Bit-Farbbild kann in ein 8-Bit-Graustufenbild oder sogar in eine Schwarzweiß-Darstellung umgewandelt werden. Der Prozess der Transcodierung wird im Schritt 570 durchgeführt, und die Ausgabe des Transcoders wird an den Client 230 weitergeleitet.
  • Ein wichtiger Aspekt der Verfahrensfunktion 565 besteht in dem Auswertungsrahmen, der dazu dient, Transcodierungsentscheidungen zu treffen. Der Auswertungsrahmen berücksichtigt Faktoren wie z.B. die verfügbare Bandbreite, die Art und Größe des Bildes sowie Benutzervoreinstellungen und liefert objektive Kriterien für das Treffen von Transcodierungsentscheidungen. Als Beispiel betrachten wir die Zielsetzung, die Antwortzeit für den Benutzer auf ein Minimum herabzusetzen, jedoch versteht der Fachmann, dass bei Verwendung desselben Rahmens auch andere Optimierungskriterien angelegt werden können. Wir beschreiben ein Verfahren zur Feststellung, wann eine Transcodierung vorteilhaft ist und bis zu welchem Grad eine Transcodierung zur Anwendung kommen sollte. Die hier beschriebene Ausführungsform wird als dynamische Anpassung von Transcodierungsparametern beschrieben.
  • 6 zeigt einen beispielhaften Web-Anforderungs-/Antwort-Zyklus und die Antwortzeit für das Abrufen eines Objekts der Größe S durch einen nach dem Store-and-Forward-Weiterleitungsverfahren arbeitenden Transcodierungs-Proxy 190. wir definieren einen nach dem Store-and-Forward-Weiterleitungsverfahren arbeitenden Bildtranscoder als einen Bildtranscoder, der warten muss, bis ein ganzes Eingangsbild gespeichert worden ist, bevor die Transcodierung an diesem Bild beginnen kann, und der dann warten muss, bis er ein transcodiertes Bild in seiner Gesamtheit erzeugen kann, bevor es zur Ausgabe bereitgestellt wird. Wie in 6 gezeigt ist, wird das ursprüngliche Bild 620 der Größe S (Byte) 670 über die Server-Proxy-Verbindung mit einer effektiven Bandbreite Bsp (Bit/s) in den Store-and-Forward-Proxy heruntergeladen. Der Transcoder führt eine Verzögerung Dx(S) 650 ein und erzeugt ein Ausgangsbild 630 der Größe Sx(S) 680. Sowohl die Transcodierungsverzögerung 650 als auch die Bytegröße 680 des Ausgangsbildes werden als von der Bytegröße S 670 des Eingangsbildes abhängig gekennzeichnet. Das transcodierte Bild wird dann über eine Proxy-Client-Verbindung mit einer effektiven Bandbreite Bpc übertragen.
  • Die Verfahrensfunktion muss den Preis der Transcodierung (Verzögerung) gegen eine durch die Transcodierung erzielte Größenverringerung abwägen. Damit eine Transcodierung Vorteile bringt, muss die Verzögerung, zu der es aufgrund der Transcodierung kommt, durch die Verkürzung der Übertragungszeit, die durch die Kompression erzielt wird, ausgeglichen werden. Bei Proxy-Client-Zugriffsverbindungen mit sehr geringer Bandbreite überwiegt der Vorteil in Form von einer kürzeren Antwortzeit aufgrund einer aggressiven Bildkompression gewöhnlich bei weitem den Nachteil der längeren Antwortzeit, die durch die rechenintensive Transcodierung verursacht wird. 7 zeigt jedoch, dass mit zunehmender Bandbreite der Proxy-Client-Verbindung ein Punkt (Transcodierungsschwellenwert 710) erreicht wird, an dem eine Transcodierung nicht mehr vorteilhaft ist, da die Verringerung der Antwortzeit, die durch die aggressive Kompression erreicht wird, in Abhängigkeit von der Bandbreite der Verbindung, die einen Engpass aufweist, abnimmt, während die Zeitdauer für die Transcodierung gleich bleibt.
  • Nehmen wir an, Ro ist die Antwortzeit für den Abruf eines Web-Objekts der Größe S vom Web-Server bei ausgeschalteter Transcodierung. Ebenso sei Rp die Antwortzeit für den Abruf der transcodierten Version desselben Web-Objekts durch den Transcodierungs-Proxy. Zum Zweck der folgenden Erörterung nehmen wir an, dass der Proxy keine Zwischenspeicherung im Cachespeicher unterstützt.
  • Die vom Client wahrgenommene Antwortzeit bei ausgeschalteter Transcodierung ist die Summe der folgenden drei Terme: R0 = 2·RTTpc + 2·RTTsp + S/min (Bpc, Bsp).
  • RTTpc ist die Umlaufzeitverzögerung zwischen dem Client und dem Proxy, und gleichermaßen ist RTTsp die Latenzzeit zwischen dem Proxy und dem Server. Der Abruf des Web-Objekts erfordert einen TCP-SYN/ACK-Austausch sowie eine HTTP-Anforderung/Antwort, wodurch ein Beitrag von 2·RTTpc + 2· RTTsp zum Verzögerungsterm hinzukommt. Darüber hinaus bringt ein Web-Bild eine Übertragungsverzögerung mit sich, die gleich der Zeitspanne zwischen der Ankunft seiner ersten und seiner letzten Bits ist. Es sei min (Bpc, Bsp) die Engpass-Bandbreite zwischen dem Client und dem Server. In Abwesenheit eines Proxy liegen die ersten und die letzten Bits eines Bildes um S/min(Bpc,Bsp) zeitlich auseinander. Diese Spanne entspricht der tatsächlichen Übertragungsdauer des Bildes über die verknüpfte Verbindung vom Server zum Proxy und vom Proxy zum Client.
  • Wenn die Transcodierung eingeschaltet wird, arbeitet der Proxy in einer Betriebsart "Store and Forward" (Speichern und Weiterleiten). 2·RTTpc + 2·RTTsp ist wieder fester Bestandteil der Antwortzeit. DP(S) ist der zusätzliche Term, der die Transcodierungsverzögerung darstellt. Die sich ergebende Antwortzeit für das transcodierte Objekt lässt sich wie folgt ausdrücken: RP = 2·RTTpc + 2·RTTsp + DP(S) + S/Bsp + Sp(S)/Bpc.
  • Eine Transcodierung verkürzt die Antwortzeit, wenn RP < Ro. Das heißt, DP(S) + S/Bsp + SP(S) /Bpc < S/min/Bpc, Bsp).
  • Es ist klar, dass RP immer größer als Ro ist, wenn Bpc > Bsp. Wenn andererseits Bpc < Bsp ist, ist eine Transcodierung nur sinnvoll, wenn: DP(S) + S/Bsp < {S – SP(S)}/Bpc.
  • Die vorstehende Gleichung zeigt deutlich die Bedingungen auf, unter denen eine Transcodierung die Antwortzeit verkürzt. 8 zeigt ein Flussdiagramm einer beispielhaften Verfahrensfunktion, die mit Hilfe des vorstehend beschriebenen Auswertungsrahmens erstellt wird. 810 kennzeichnet einen Eintrittspunkt in die Verfahrensfunktion. Die Verfahrensfunktion 800 wird von 565 mit der ursprünglichen Größe des Bildobjekts als eine der Eingaben in die Verfahrensfunktion aufgerufen. Die Variable S wird gleich der Größe des Eingangsobjekts gesetzt, und der Qualitätsfaktor q wird auf einen Anfangswert gesetzt, der die bestmögliche Anfangsbildqualität darstellt (beispielsweise die Qualität des Eingangsbildes). Im Schritt 830 gibt die Verfahrensfunktion 800 eine Anfrage an die Bandbreitenschätzeinheit 380 aus, mit der sie um Angabe des geschätzten Zeitraums für das Herunterladen der Objektgröße S von dem angegebenen Server auf den Proxy bittet, der als T1(S) bezeichnet wird. Sie bittet auch um Angabe des Schätzwerts des Zeitraums für das Herunterladen desselben Objekts vom Proxy auf den Client, der als T2(S) bezeichnet wird. Auf der Grundlage der Protokolle von vorherigen Verbindungen zu dem gewählten Ziel gibt die Bandbreitenschätzeinheit einen Schätzwert von T1(S) und T2(S) zurück. Im nächsten Schritt 840 fragt die Verfahrensfunktion den Bildgrößen- und Verzögerungsvorhersager 375 ab, um einen Schätzwert der Größe des transcodierten Bildes SP(S) zu erhalten. Sie berechnet dann die Einsparungen bei dem geschätzten Zeitraum für das Herunterladen, indem sie den Schätzwert des Zeitraums für das Herunterladen der Größe des transcodierten Bildes T2 (SP(S)) von T2(S) abzieht, 850. Im Schritt 870 werden schließlich die beiden Größen (Transcodierungsverzögerung + T1(S) – die Einsparungen beim Herunterladen) und die Verringerung der Zielantwortzeit verglichen. Wenn der erste Term kleiner als der zweite Term ist, wird die Berechnung angehalten, und der gewählte Qualitätsfaktor q wird als Ausgabe zurückgegeben, 880. Andernfalls erfolgt mit einem verringerten Wert von q erneut ein Eintritt in die Schleife 840 bis 870.
  • Es sei erwähnt, dass der Fachmann leistungsfähigere Suchverfahren oder Varianten von Zielfunktionen ersinnen kann, ohne von dem in dieser Erfindung dargestellten Wesen des Verfahrensfunktionsrahmens abzuweichen. Eine Erweiterung bestünde darin, die Terme in der Verfahrensgleichung wie folgt umzuordnen: Verringerung der Antwortzeit (q) = {S – SP(S)}/Bpc – DP(S) – S/Bsp.
  • In der obigen Gleichung ist SP(S) auch abhängig vom Qualitätsfaktor (je kleiner die Ausgabegröße, desto schlechter die Qualität). Man beachte, dass festgestellt wurde, dass die Transcodierungsverzögerung tatsächlich unabhängig vom Qualitätsfaktor ist. In der obigen Gleichung gibt es zwei unabhängige Variablen: q, den Qualitätsfaktor, und die Verringerung der Zielantwortzeit. Im Rahmen der obigen Gleichung lassen sich mehrere unterschiedliche Verfahren entwickeln, zum Beispiel:
    Setze die Antwortzeit für alle Benutzer auf ein Minimum herab;
    Setze die Qualität bei einer vom Benutzer angegebenen Vorgabe für die Antwortzeit auf ein Höchstmaß herauf;
    Optimiere die Leistungsfähigkeit des gesamten Systems, nicht nur die Leistungsfähigkeit einer Benutzereinheit.
  • Da die Transcodierung eine rechenintensive Aufgabe ist und die Leistungsfähigkeit der CPU des Proxy beschränkt ist, werden die CPU-Zyklen des Proxy am besten für die Aufgaben verwendet, die dem Erreichen einer höchstmöglichen Gesamtzufriedenheit des Benutzers dienen. Während der Hauptnutzungszeit, wenn jeder Benutzer die Transcodierung einschaltet, kann es vorkommen, dass nicht genügend CPU-Zyklen zur Verfügung stehen, um alle Transcodierungsanforderungen zu erfüllen. Indem die Verantwortung für die Parameterauswahl der Verfahrensfunktion 800 übertragen wird, kann das System die optimalen Transcodierungsparameter automatisch auswählen und dem Endbenutzer eine gleichbleibende und vorhersagbare Antwortzeit bereitstellen. Wenn Benutzer diese Parameter selbständig auswählen müssten, könnte das Transcodierungssystem nicht mit der optimalen Leistung arbeiten.
  • Betrachten wir nun die Transcodierungsverzögerung und die Größenschätzung. Der Entscheidungsschritt 870 erfordert zwei zusätzliche Eingaben: einen Schätzwert der Größe des transcodierten Bildes, SP(S), und die Transcodierungsverzögerung, DP(S), die der Prozess der Transcodierung mit sich bringt. Eine genaue Vorhersage dieser beiden Größen ist schwer zu bekommen, da sie vom Bildinhalt, der verwendeten Codierungsart, dem ursprünglichen Qualitätsfaktor, der Geschwindigkeit des Prozessors und der Auslastung des Proxy abhängen. wie im Falle der Bandbreitenschätzeinheiten verwendet die vorliegende Erfindung statistische Verfahren, um diese beiden Größen zu schätzen.
  • 9 ist ein Blockschaltbild, das ein Beispiel des Bildgrößen-Vorhersagemoduls gemäß der vorliegenden Erfindung zeigt. Wie bei 910 gezeigt ist, initialisieren wir unser System mit statistischen Kennwerten von Sx(q), die auf einem großen Referenzsatz von Bildern beruhen. Das bei 910 gezeigte Verfahren dient zur Initialisierung der Verteilungsfunktionen der Größe des transcodierten Bildes, die von den Parametern bpp und q abhängen. Der Proxy fügt der Verteilungsfunktion laufend neue Stichprobenpunkte 920 zu, während er neue Bildobjekte abruft und transcodiert. Die Funktion von 920 ermöglicht dem Bildgrößenvorhersager 375, sein Verhalten an verschiedene Datensätze anzupassen, auf die ein Client gegebenenfalls zugreift.
  • Bei dem in 930 beschriebenen Verfahren verwenden wir folglich statistische Verfahren zur Schätzung der Verzögerung und der Ausgabegröße, und wir verwenden das bpp-Verhältnis als das Kriterium zur Durchführung einer genaueren Klassifizierung von Bildern und folglich zur Bildung eines besseren Schätzwerts der Größe der resultierenden transcodierten Datei. Dieses Verfahren funktioniert besonders gut bei GIF-Dateien.
  • Bei Verwendung von ähnlichen statistischen Verfahren lässt sich DP(S) auf der Grundlage einer Initialisierung mit Referenzwerten und einer Online-Aktualisierung des statistischen Modells schätzen. Aus unserer Arbeit mit Statistiken wir auch festgestellt, dass sich die Transcodierungsverzögerung gut als eine lineare Funktion der Anzahl der Pixel (im Gegensatz zur Dateigröße) charakterisieren lässt.
  • Betrachten wir nun die Schätzung der Bandbreite und des Zeitraums für das Herunterladen. Die Genauigkeit des Entscheidungsschritts 870 hängt in hohem Maße auch von der Genauigkeit der Schätzwerte des Zeitraums für das Herunterladen von Bildern ab. Die in den 3 bis 5 gezeigte Bandbreitenschätzeinheit 380 ist für die Bereitstellung dieser Schätzwerte für den Zeitraum verantwortlich. Die Bandbreitenschätzeinheit 380 zeichnet jedes Paketsende- und -empfangsereignis am Proxy auf und wertet die erfassten Überwachungsprotokolle statistisch aus, um Vorhersagen über den Zustand des Netzwerks zu treffen. Der Fachmann im Bereich der Netzwerküberwachung versteht, dass die Netzwerküberwachungsfunktion auf mehrere unterschiedliche Arten realisiert werden kann. Eine Ausführungsmöglichkeit wäre eine Zwischenschicht zwischen der Proxy-Anwendung und der Verbindungsschicht. Eine weitere Ausführungsmöglichkeit wäre eine Verarbeitungsschicht über einer Paketfilter-Software. Im Allgemeinen liefert die Ausführung, bei der eine Verarbeitungsschicht über der Paketfilter-Software eingerichtet wird, genauere Schätzwerte der Bandbreite und des Zeitraums für das Herunterladen. Bei der vorliegenden Erfindung ist es nicht erforderlich, dass die Bandbreitenschätzeinheit 380 und auch der Verfahrensentscheidungsschritt 870 auf derselben Maschine laufen, obgleich eine gemeinsame Unterbringung der beiden Module am selben Ort den Kommunikationsaufwand zwischen ihnen auf ein Mindestmaß herabsetzt.
  • 10 zeigt ein beispielhaftes Bandbreitenschätzmodul 380 gemäß der vorliegenden Erfindung. Das Modul besteht aus zwei Komponenten: dem Überwachungsmonitor 1010 und einer Statistik-Auswerteeinheit 1020. Der Überwachungsmonitor überwacht laufend alle Verbindungen zwischen den Clients und dem Proxy. Derselbe Überwachungsmonitor (oder eine andere Instanz von ihm) wird auch zur Überwachung des Verkehrs zwischen dem Proxy und allen Web-Servern verwendet. Für jede überwachte Verbindung werden die folgenden Informationen aufgezeichnet:
    • – der Zeitpunkt, zu dem eine neue Verbindung hergestellt wird
    • – die Quellenadresse, die Nummer des Quellenanschlusses, die Zieladresse sowie die Nummer des Zielanschlusses einer jeden Netzwerkverbindung,
    • – die Anzahl der auf jeder Verbindung gesendeten und empfangenen Bytes und der jeweilige Zeitstempel eines jeden Sende- und Empfangsereignisses,
    • – der Zeitpunkt, zu dem die Verbindungen geschlossen werden.
  • Die Statistik-Auswerteeinheit 1020 verwaltet eine Datenbank aller bisherigen und aller aktuellen aktiven Verbindungen. Für jede Verbindung zeichnet sie auch in Form eines Verlaufs auf, wie viele Bytes wann auf dieser Verbindung gesendet und/oder empfangen wurden. Auf der Grundlage dieses Verlaufs kann die Statistik-Auswerteeinheit 1020 Vorhersagen über den Zeitraum für das Herunterladen bei zukünftigen Verbindungen treffen. Um den Zeitraum für das Herunterladen von Daten vom Server auf den Proxy und vom Proxy auf den Client vorherzusagen, verwenden wir unterschiedliche Heuristiken.
  • Aufgezeichnete Verbindungen vom Server zum Proxy weisen ein Verhalten auf, das bei TCP-Weitverkehrsverbindungen üblich ist. Es wurde beobachtet, dass Aufzeichnungskurven vom Typ "Sequenz über dem Zeitstempel" nichtlinear sind, und wir haben festgestellt, dass lineare Schätzkonzepte wie beispielsweise des Durchschnitts- oder Zentralwerts der Bandbreite keine genauen Schätzwerte hervorbringen. Um den Zeitraum für das Herunterladen eines Objekts mit einer bestimmten Größe vorherzusagen, betrachtet die Bandbreitenschätzeinheit den Verlauf der Verbindungen zu dem gewählten Ziel und berechnet die Verteilungsfunktion des Zeitraums für das Herunterladen für alle Objekte, die ungefähr dieselbe Größe haben. Der Zentralwert oder eine andere geeignete statistische Funktion dieser Verteilung wird als Schätzwert des Zeitraums für das Herunterladen zurückgeschickt.
  • Im Gegensatz dazu bestimmen hauptsächlich die Auswirkungen einer bandbreitenbegrenzten Verbindungsstrecke, üblicherweise in Form des letzten Übertragungsabschnitts 160 bis 164, das TCP-Verhalten vom Proxy zum Client. Da es hier einen Verbindungsengpass gibt, kommt es durch die Gesamtheit aller aktiven TCP-Verbindungen zu einem Client an diesem Verbindungsengpass üblicherweise zu Sättigungserscheinungen. Um Schätzwerte des Zeitraums für das Herunterladen von Daten vom Proxy auf den Client bereitzustellen, fasst die Bandbreitenschätzeinheit alle aktiven Verbindungen zu einem Client zu einer einzigen Gruppe zusammen. Für jede Verbindungsgruppe erstellt sie ein Diagramm, das die Zeit über der Anzahl Bytes zeigt, und anschließend nimmt sie eine Kurvenanpassung an den Daten vor. Dieses Verfahren liefert einen genauen Schätzwert der aktuell zur Verfügung stehenden Bandbreite zwischen dem Proxy und dem Client. Obgleich sich dieser Wert im Laufe der Zeit ändert, sind die Schwankungen in den meisten Fällen begrenzt. Beispielsweise kann die Bandbreitenüberwachungseinheit ohne weiteres feststellen, ob der Client über eine 10-MB-Ethernet-Verbindung, einen 14,4-Modem oder einen 28,8-Modem angeschlossen ist, indem sie die Ausgabe des Kurvenanpassungsalgorithmus auswertet. Die vorhergesagten Werte sind nicht genau (sie weichen von den korrekten Werten um 20 % bis 30 % ab), aber der Fachmann versteht, dass sich die Genauigkeit der Bandbreitenschätzung durch Verfeinerung des Schätzalgorithmus verbessern lässt.
  • Betrachten wir nun die Transcodierungs-Benutzerschnittstelle. Die Transcodierungs-Benutzerschnittstelle ist die Schnittstelle, über die der Benutzer das Verhältnis zwischen der Bildqualität und dem Zeitraum für das Herunterladen dynamisch ändern kann. Sie ist in den 2 bis 5 als das Element 260 dargestellt. 11 zeigt eine beispielhafte Ausführung der Schnittstelle für die Benutzervoreinstellungen gemäß der aktuellen Erfindung. Diese Benutzerschnittstelle ist gut in Form einer linearen Schiebeleiste dargestellt, die als ein Java-Applet realisiert werden kann, um den Benutzern die Möglichkeit zu geben, die Bildqualität ständig zu ändern. wie in 11 gezeigt ist, steht auch eine Option zur Auswahl der Farbe (im Gegensatz zur Grauskala) zur Verfügung. Darüber hinaus kann eine Option zur Auswahl von "Autopilot" auf zweierlei Arten wie folgt verwendet werden: 1) als Hinweis an den Proxy, dass er auf der Grundlage der aktuellen Schätzwerte der Bandbreite der Client-Proxy-Verbindung und der Proxy-Server-Verbindung und der aktuell verfügbaren CPU-Ressourcen automatisch entscheiden kann, ob eine Transcodierung durchgeführt wird, wie vorstehend beschrieben wurde, oder 2) als Hinweis an den Proxy, dass er versuchen soll, die aktuellen Zeiträume für das Herunterladen, die der Benutzer gerade erfährt, beizubehalten (d.h., indem die Bildqualität am Proxy so geändert wird, dass dynamische Änderungen der Bandbreite, die von dem Teilsystem zur Bandbreitenschätzung festgestellt werden, ausgeglichen werden); oder es können sowohl 1) als auch 2) verwendet werden. Gelegentlich, wenn der Benutzer eine getreue Version der Daten benötigt, kann er die verfeinerten Daten einfach anfordern, indem er die Schiebeleiste (nach unten) verschiebt und die qualitativ höherwertigen Daten anfordert. Gewöhnlich stellen wir fest, dass nahezu unser gesamtes Web-Browsing durchgeführt werden kann, indem Bilder auf ein Sechstel oder ein Zehntel ihrer ursprünglichen Größe transcodiert werden, und nur selten stoßen wir tatsächlich auf ein Objekt, wie zum Beispiel eine Land- oder Straßenkarte, bei der wir eine Verfeinerung anfordern müssen. Es sei angemerkt, dass alternative Nur-HTML-Schnittstellen möglicherweise erfunden worden sind, um Nicht-Java-Einheiten wie zum Beispiel auf Windows CE basierende Plattformen zu unterstützen.
  • Als Nächstes betrachten wir eine kontinuierliche Bildtranscodierung. Die vorstehende Beschreibung ist im Allgemeinen auf einen nach dem Store-and-Forward-Weiterleitungsverfahren arbeitenden Transcodierungs-Proxy anwendbar. Im Folgenden beschreiben wir Bedingungen, unter denen es für einen kontinuierlich arbeitenden Bildtranscoder vorteilhaft ist, eine Transcodierung durchzuführen. Ein kontinuierlich arbeitender Bildtranscoder ist ein Bildtranscoder, der mit dem Auslesen von Bilddaten, die in einem Ausgangsformat codiert sind, beginnt, bevor er den vollständigen Eingangsbytestrom, der dem ganzen Bild entspricht, das in dem Eingangsformat codiert ist, vollständig eingelesen hat.
  • In 12 zeigen wir ein Beispiel für die Überlegungen hinter unserem Algorithmus, indem wir ein Zeitdiagramm verwenden. Das Eingangsbild kommt als ein Strom von Bits im Abstand von 1/Bsp an. Der kontinuierlich arbeitende Bildtranscoder nimmt eine Gruppe von G Bits zur Transcodierung, wobei eine geringe Store-and-Forward-Verzögerung D1 entsteht. Die Gruppe der Bits wird dann in eine Gruppe von GP Ausgangsbits transcodiert, wobei eine Verzögerung D2 entsteht. Wenn D2 < D1, kann der Bildtranscoder jede Eingangsgruppe G in ihre entsprechende Ausgangsgruppe GP umwandeln, bevor die nächste Eingangsgruppe G verarbeitet werden muss. In diesem Fall ist der interne Speicherplatzbedarf des kontinuierlich arbeitenden Bildtranscoders begrenzt. Wenn aber D2 > D1, kann der Bildtranscoder die Eingangsbits nicht schnell genug verarbeiten. In diesem letzteren Fall, unter der Annahme eines kontinuierlichen Eingangsstroms, nimmt der interne Speicherplatzbedarf des Bildtranscoders unbegrenzt zu, d.h., die internen RAM-Pufferspeicher endlicher Länge des Bildtranscoders laufen über. Deshalb ist es unser Wunsch, dass die Transcodierungsverzögerung D2 die Bedingung D2 < D1 erfüllt. Es ist klar, dass D1 = G/Bsp. Um D2 zu ermitteln, sei DP(S) = der vorhergesagte Bildcodierungszeitraum für ein Bild mit S Bits. ((DP(S) hängt eigentlich von anderen Parametern wie dem Bildinhalt und den Abmessungen ab, aber wir verwenden DP(S) der Einfachheit der Notation halber). Dann ist D2 = DP(S)/(S/G). Um zu verhindern, dass der RAM-Pufferspeicher überläuft, muss die Transcodierungsverzögerung der Gruppe DP(S)/(S/G) < G/Bsp sein oder DP(S) < S/Bps) (Bedingung A). erfüllen.
  • Unter der Annahme, dass die Bedingung A gilt, sind die ausgegebenen transcodierten Gruppen GP durch eine Verzögerung, die gleich D1 ist, in gleichmäßigem Abstand voneinander getrennt. Der Übertragungskanal kann jede transcodierte Bitgruppe GP im Zeitraum D3 = GP/Bpc senden. Im Fall i) zeigen wir, dass D2(i) < D1, d.h., jede Ausgangsgruppe GP kann gesendet werden, bevor die nächste Ausgangsgruppe übertragungsbereit ist. Im Fall ii) ist D3(ii) > D1, so dass die Ausgangsübertragungsverbindung die erzeugten Bits nicht schnell genug senden kann, um die Ausgabewarteschlange leer zu halten. Im Fall ii) wächst die Ausgabewarteschlange der Übertragungsverbindung bei einem kontinuierlichen Strom von transcodierten Bits unbegrenzt, was zu einem Überlauf der Pufferspeicher endlicher Länge der Übertragungsverbindung führt. Deshalb ist es unser Wunsch, dass die Verzögerung, die durch die Größe der transcodierten Ausgangsgruppe D3(i) verursacht wird, kleiner D1 ist (D3(i) < D1). Es ist klar, dass D3(i) = GP/Bpc. Um zu verhindern, dass der Ausgabepufferspeicher der Übertragungsverbindung überläuft, muss die Größe GP der transcodierten Ausgangsbildgruppe GP/Bpc < G/Bsp sein oder c > Bps /Bpc (Bedingung B)erfüllen, wobei c = das Kompressionsverhältnis G/GP des Gruppenbildes ist, von dem wir annehmen, dass es im Durchschnitt gleich dem gesamten Bildkompressionsverhältnis ist. Zusammenfassend lässt sich sagen, dass der kontinuierlich arbeitende Bildtranscoder eine Transcodierung nur durchführen sollte, wenn sowohl die Bedingung A als auch die Bedingung B erfüllt sind. Wenn die Verbindung vom Proxy zum Server den Engpass darstellt, d.h. Bcp < Bpc, verringert sich die Bedingung B auf c > N, wobei N eine Zahl kleiner 1 ist. Normalerweise ist das Kompressionsverhältnis immer größer als 1, so dass die Bedingung B immer erfüllt ist. In diesem Fall muss nur die Bedingung A erfüllt werden, damit eine Transcodierung nicht von Nachteil ist. Wenn die Verbindung vom Proxy zum Server der Engpass ist, könnte die Bedingung B tatsächlich so gedeutet werden, dass sie das bei einem transcodierten Bild erlaubte Vergrößerungsverhältnis nach oben begrenzt, nämlich 1/c < Bpc/Bsp. Die Vergrößerung eines Bildes kann zuweilen notwendig sein, wenn eine Formatumwandlung, z.B. aus dem GIF- in das Palm-Format, zwingend notwendig ist. Mit der vorstehenden Gleichung können wir feststellen, wann eine solche Formatumwandlung das Risiko eines Pufferspeicherüberlaufs erhöht und wann eine Formatumwandlung zu keinem Überlauf des Pufferspeichers führt. Wenn beispielsweise Bsp = 1 bps, Bpc = 2bps und G = 1 Bit, sagt die Bedingung B aus, dass die Ausgangsgruppe GP auf höchstens 2 Bit erweitert werden kann. Wenn die Verbindung vom Client zum Proxy der Engpass ist, d.h. Bsp > Bpc, sagt die Bedingung B aus, dass das Bildkompressionsverhältnis c größer als das Verhältnis der Bandbreiten vom Proxy zum Server und vom Client zum Proxy sein muss, damit sich die Transcodierung lohnt. Darüber hinaus muss die Bedingung A nach wie vor erfüllt werden.
  • Es sei erwähnt, dass die Bedingung A und die Bedingung B enge Grenzen darstellen, die voraussetzen, dass der Pufferspeicher nie überlaufen darf. Der Fachmann versteht, dass weniger strenge Einschränkungen unter der Voraussetzung abgeleitet werden können, dass die Bilder statt des in der Auswertung angenommenen kontinuierlichen Stroms eine endliche Länge haben. Weniger strenge Einschränkungen würden mehr Zeit für die Transcodierung und/oder eine weniger aggressive Kompression ermöglichen.
  • Es ist somit ein Aspekt der vorliegenden Erfindung, ein Verfahren für einen Transcodierungs-Proxy bereitzustellen, um das Durchsuchen (Browsing) von Client-Einheiten und Servern, die über ein Kommunikationsnetzwerk verbunden sind, zu vereinfachen. Das Verfahren umfasst den Empfang einer HTTP-GET-Anforderung von einer Client-Einheit für ein Objekt, das auf einem der Server gespeichert ist, die Weiterleitung der GET-Anforderung für das Objekt an den Server, den Empfang des Objekts von den Servern, die Prüfung der Voreinstellungen, die von einem Benutzer der Client-Einheit festgelegt wurden, die Prüfung des Inhalts des Objekts, die Prüfung von Eigenschaften des Kommunikationsnetzwerks, die Wahl eines Satzes von Transcodierungsparametern, die Bildung einer transcodierten Form des Objekts, das Senden der transcodierten Form an den Client und/oder das Prüfen von Netzwerkeigenschaften einschließlich der Schätzung der Netzwerkbandbreite zwischen dem Server und dem Proxy sowie zwischen dem Proxy und dem Client und/oder der Schätzung der Verzögerung zwischen den Servern und dem Proxy sowie der Verzögerung zwischen dem Proxy und der Client-Einheit und/oder die Bereitstellung einer Rückmeldung an den Benutzer über den Grad der an dem Objekt durchgeführten Transcodierung und/oder den Schritt der Prüfung, der die Feststellung der Größe des Objekts beinhaltet, und/oder die Feststellung der Abmessungen des Objekts und/oder die Berechnung des Kompressionsverhältnisses des Objekts. Wenn das Objekt vom Typ Bild ist, werden die Abmessungen des Bildobjekts anhand der Bildfläche in Quadratpixeln ermittelt, und das Kompressionsverhältnis wird über das bpp-Verhältnis des Bildobjekts ermittelt. Die vorliegende Erfindung ermöglicht sowohl eine Store-and-Forward-Transcodierung als auch eine kontinuierliche Transcodierung, wodurch eine transcodierte Form gebildet werden kann, bevor der Schritt des Empfangs des Objekts von den Servern abgeschlossen ist. Dieses Verfahren lässt sich auf JPEG, GIF und andere Bildarten anwenden. Ein weiterer Aspekt dieser Erfindung ist, dass sie das Versenden der transcodierten Form ermöglicht, bevor der Schritt der Bildung einer transcodierten Form des Objekts abgeschlossen ist.
  • Es gibt mehrere andere Überlegungen, die wichtig sind. Die vorstehenden Beispiele für die Konzepte der vorliegenden Erfindung gelten gewöhnlich für Bilder und Videofilme usw. Die breite Nutzung des Internet hat den wert von Bilddaten, die nach JPEG und MPEG komprimiert sind, gezeigt. Audiocodierte Daten müssen ebenfalls dekomprimiert, mit speziellen Toneffekten gemischt, mit anderen Audiodaten zusammengeführt, bearbeitet und im realen Umfeld verarbeitet werden. Ähnliche Ausführungen werden für industrielle, kommerzielle und militärische Anwendungen durchgeführt.
  • Diese Erfindung kann auch in Form eines Prozesses, eines Herstellungsgegenstands, einer Vorrichtung, eines Systems, einer Architektur und/oder eines Rechnerprodukts bereitgestellt werden. Beispielsweise kann sie als ein Herstellungsgegenstand realisiert werden, der einen von einem Rechner nutzbaren Datenträger mit einem darauf befindlichen rechnerlesbaren Programmcodemittel umfasst, um einen Rechner zur Durchführung der Verfahren der vorliegenden Erfindung zu veranlassen.
  • Obgleich die Beschreibung der Erfindung bestimmte Schrittfolgen vorsieht, sei darauf hingewiesen, dass die Zielsetzung und das Konzept der vorliegenden Erfindung auch für andere Schrittfolgen geeignet und auf diese anwendbar ist. Zum Beispiel kann die Erfindung auch an einen beliebigen Browser angepasst werden, obgleich die Ausführungsform ausschließlich auf den Aufruf und die Darstellung von Web-Seiten gerichtet ist. Obwohl hauptsächlich dynamische Ausführungen näher betrachtet werden, kann die Erfindung mit einer Kombination aus statischen, quasi-dynamischen und dynamischen Ausführungen eingesetzt werden.

Claims (9)

  1. Verfahren für einen Transcodierungs-Proxy (220, 240, 370), um das Durchsuchen(Browsing) einer Vielzahl von Client-Einheiten (230) und einer Vielzahl von Servern (210), die über ein Kommunikationsnetzwerk verbunden sind, zu vereinfachen, wobei das Verfahren Folgendes umfasst: Empfangen einer Anforderung von einer der Client-Einheiten (230) für ein Objekt, das auf einem der Server (210) gespeichert ist, Weiterleiten der Anforderung für das Objekt an den einen der Server (210), Empfangen des Objekts von dem einen der Server (210), Prüfen von Voreinstellungen, die von einem Benutzer von der einen der Client-Einheiten (230) festgelegt wurden, Prüfen des Inhalts des Objekts, Prüfen von Eigenschaften des Kommunikationsnetzwerks, Wählen eines Satzes von Transcodierungsparametern, Bilden einer transcodierten Form des Objekts mittels des Transcodierungs-Proxy (220, 240, 370), und Senden der transcodierten Form an den einen der Clients (230), gekennzeichnet durch: Setzen einer Variablen (S) auf die Eingangsgröße des Objekts, Schätzen eines ersten Zeitraums (T1(S)) für das Herunterladen der Objektgröße (S) von dem einen der Server (210) auf den Transcodierungs-Proxy (220, 240, 370) und eines zweiten Zeitraums (T2(S)) für das Herunterladen der Objektgröße von dem Transcodierungs-Proxy (220, 240, 370) auf den einen der Clients (230), Setzen eines Qualitätsfaktors (q) auf einen Anfangswert, Schätzen der Größe (SP(S)) des Objekts, wenn es von dem Transcodierungs-Proxy in die von dem Qualitätsfaktor (q) dargestellte Qualität transcodiert wurde, Ermitteln der Transcodierungsverzögerung (DP(S)), um das Objekt zu transcodieren, Schätzen eines dritten Zeitraums (T2(SP(S))) für das Herunterladen der Größe des transcodierten Objekts von dem Transcodierungs-Proxy auf den einen der Clients, Berechnen eines Schätzwerts der Verringerung der Antwortzeit aus dem ersten, dem zweiten und dem dritten Zeitraum für das Herunterladen (T1(S), T2(S), T2(SP(S))) und der Transcodierungsverzögerung (DP(S)), wobei die Verringerung durch die Transcodierung des Objekts bewirkt wird, und Vergleichen des Schätzwerts der Verringerung der Antwortzeit mit einem voreingestellten Zielwert und Verringern des Qualitätsfaktors (q), wenn der Schätzwert der Verringerung der Antwortzeit unter dem Zielwert liegt.
  2. Verfahren nach Anspruch 1, wobei zu den Netzwerkeigenschaften die Bandbreite gehört und wobei die Prüfung der Netzwerkeigenschaften das Schätzen der Netzwerkbandbreite zwischen dem einen der Server (210) und dem Proxy (220, 240, 370) sowie zwischen dem Proxy (220, 240, 370) und dem einen der Clients (230) beinhaltet.
  3. Verfahren nach einem der vorhergehenden Ansprüche, das des Weiteren die Bereitstellung einer Rückmeldung an den Benutzer (230) über den Grad der Transcodierung umfasst, die an dem Objekt durchgeführt wird, um die transcodierte Form zu bilden.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Schritt der Bildung einer transcodierten Form eine dynamische Anpassung vornimmt.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Schritt der Bildung einer transcodierten Form gestartet wird, bevor der Schritt des Empfangs des Objekts von dem einen der Server (210) abgeschlossen ist.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Schritt des Versendens der transcodierten Form gestartet wird, nachdem ein erster Teil des empfangenen Objekts verarbeitet wurde und bevor der Schritt des Empfangs des Bildobjekts von dem einen der Server (210) abgeschlossen ist.
  7. Verfahren nach dem vorhergehenden Anspruch 1, wobei der Schritt des Versendens der transcodierten Form gestartet wird, bevor der Schritt der Bildung einer transcodierten Form des Objekts abgeschlossen ist.
  8. Kommunikationssystem, das einen Transcodierungs-Proxy (220, 240, 370) beinhaltet, um das Durchsuchen(Browsing) einer Vielzahl von Client-Einheiten (230) und einer Vielzahl von Servern (210), die über ein Kommunikationsnetzwerk verbunden sind, zu vereinfachen, wobei das System Folgendes umfasst: ein Mittel, um eine Anforderung von einer der Client-Einheiten (230) für ein Objekt zu empfangen, das auf einem der Server (210) gespeichert ist, ein Mittel, um die Anforderung für das Objekt an den einen der Server (210) weiterzuleiten, ein Mittel, um das Objekt von dem einen der Server (210) zu empfangen, ein Mittel, um Voreinstellungen zu prüfen, die von einem Benutzer von der einen der Client-Einheiten (230) festgelegt wurden, ein Mittel, um den Inhalt des Objekts zu prüfen, ein Mittel, um Eigenschaften des Kommunikationsnetzwerks zu prüfen, ein Mittel, um einen Satz von Transcodierungsparametern zu wählen, ein Mittel, um eine transcodierte Form des Objekts mittels des Transcodierungs-Proxy (220, 240, 370) zu bilden, und ein Mittel, um die transcodierte Form an den einen der Clients (230) zu senden, gekennzeichnet durch: ein Mittel, um eine Variable (S) auf die Eingangsgröße des Objekts zu setzen, ein Mittel, um einen ersten Zeitraum (T1(S)) für das Herunterladen der Objektgröße (S) von dem einen der Server (210) auf den Transcodierungs-Proxy (220, 240, 370) und einen zweiten Zeitraum (T2(S)) für das Herunterladen der Objektgröße von dem Transcodierungs-Proxy (220, 240, 370) auf den einen der Clients (230) zu schätzen, ein Mittel, um einen Qualitätsfaktor (q) auf einen Anfangswert zu setzen, ein Mittel, um die Größe (SP(S)) des Objekts zu schätzen, wenn es in die von dem Qualitätsfaktor (q) dargestellte Qualität transcodiert wurde, ein Mittel, um die Transcodierungsverzögerung (DP(S)) zu ermitteln, um das Objekt zu transcodieren, ein Mittel, um einen dritten Zeitraum (T2(SP(S))) für das Herunterladen der Größe des transcodierten Objekts von dem Transcodierungs-Proxy auf den einen der Clients zu schätzen, ein Mittel, um einen Schätzwert der Verringerung der Antwortzeit aus dem ersten, dem zweiten und dem dritten Zeitraum für das Herunterladen (T1(S), T2(S), T2(SP(S))) und der Transcodierungsverzögerung (DP(S)) zu berechnen, wobei die Verringerung durch die Transcodierung des Objekts bewirkt wird, und ein Mittel, um den Schätzwert der Verringerung der Antwortzeit mit einem voreingestellten Zielwert zu vergleichen und um den Qualitätsfaktor (q) zu verringern, wenn der Schätzwert der Verringerung der Antwortzeit unter dem Zielwert liegt.
  9. Rechnerprogramm, das Rechnerprogrammbefehle umfasst, um einen Rechner zur Durchführung der Schritte des Verfahrens nach einem der Ansprüche 1 bis 7 zu veranlassen.
DE69919474T 1998-10-02 1999-09-24 Automatische Anpassung der Qualität von Bilddaten um die Antwortzeiten eines Web-Servers zu reduzieren Expired - Lifetime DE69919474T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10294498P 1998-10-02 1998-10-02
US102944P 1998-10-02
US236622 1999-01-29
US09/236,622 US6563517B1 (en) 1998-10-02 1999-01-29 Automatic data quality adjustment to reduce response time in browsing

Publications (2)

Publication Number Publication Date
DE69919474D1 DE69919474D1 (de) 2004-09-23
DE69919474T2 true DE69919474T2 (de) 2005-08-18

Family

ID=26799914

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69919474T Expired - Lifetime DE69919474T2 (de) 1998-10-02 1999-09-24 Automatische Anpassung der Qualität von Bilddaten um die Antwortzeiten eines Web-Servers zu reduzieren

Country Status (5)

Country Link
US (1) US6563517B1 (de)
EP (1) EP0992922B1 (de)
KR (1) KR100353172B1 (de)
AT (1) ATE274207T1 (de)
DE (1) DE69919474T2 (de)

Families Citing this family (222)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286294B2 (en) 1992-12-09 2016-03-15 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator content suggestion engine
US7168084B1 (en) 1992-12-09 2007-01-23 Sedna Patent Services, Llc Method and apparatus for targeting virtual objects
US6826593B1 (en) * 1998-09-01 2004-11-30 Lucent Technologies Inc. Computer implemented method and apparatus for fulfilling a request for information content with a user-selectable version of a file containing that information content
US6587878B1 (en) * 1999-05-12 2003-07-01 International Business Machines Corporation System, method, and program for measuring performance in a network system
US6993476B1 (en) * 1999-08-26 2006-01-31 International Business Machines Corporation System and method for incorporating semantic characteristics into the format-driven syntactic document transcoding framework
US7191168B1 (en) 1999-08-27 2007-03-13 At&T Corp. Fast prefix matching of bounded strings
US20020198961A1 (en) * 1999-08-27 2002-12-26 Balachander Krishnamurthy Method for improving web performance by client characterization-driven server adaptation
US7296089B2 (en) * 1999-08-27 2007-11-13 At&T Corp. Method for improving web performance by adapting servers based on client cluster characterization
US7219160B1 (en) 1999-08-27 2007-05-15 At&T Corp. Method for fast network-aware clustering
US6964009B2 (en) * 1999-10-21 2005-11-08 Automated Media Processing Solutions, Inc. Automated media delivery system
US6792575B1 (en) * 1999-10-21 2004-09-14 Equilibrium Technologies Automated processing and delivery of media to web servers
US20060265476A1 (en) * 1999-10-21 2006-11-23 Sean Barger Automated media delivery system
US20100145794A1 (en) * 1999-10-21 2010-06-10 Sean Barnes Barger Media Processing Engine and Ad-Per-View
GB2358539A (en) * 2000-01-21 2001-07-25 Sony Uk Ltd Data processing method which separates parameter data from coded data
US7240099B2 (en) 2000-03-06 2007-07-03 Sony Corporation System and method for efficiently performing data transfer operations
EP1148690A1 (de) * 2000-04-20 2001-10-24 Telefonaktiebolaget Lm Ericsson Verfahren, Übergangssystem und Anordung in einem Kommunikationsnetz
US7072984B1 (en) * 2000-04-26 2006-07-04 Novarra, Inc. System and method for accessing customized information over the internet using a browser for a plurality of electronic devices
US20040049737A1 (en) * 2000-04-26 2004-03-11 Novarra, Inc. System and method for displaying information content with selective horizontal scrolling
US7747782B2 (en) * 2000-04-26 2010-06-29 Novarra, Inc. System and method for providing and displaying information content
US7500188B1 (en) * 2000-04-26 2009-03-03 Novarra, Inc. System and method for adapting information content for an electronic device
DK1384166T3 (da) 2000-05-11 2011-07-11 Syniverse Icx Corp System og fremgangsmåde til tilvejebringelse af adgang til fotografiske billeder og attributter for multiple forskelligartede klientapparater
JP2001331416A (ja) * 2000-05-19 2001-11-30 Sharp Corp 電子メール送信装置、電子メール作成方法および電子メール作成プログラムを記録したコンピュータ読取可能な記録媒体
US20020029285A1 (en) * 2000-05-26 2002-03-07 Henry Collins Adapting graphical data, processing activity to changing network conditions
KR100460276B1 (ko) * 2000-06-10 2004-12-04 유미특허법인 인터넷 서비스 장치 및 서비스 방법
EP1170675A1 (de) * 2000-07-06 2002-01-09 Gavoa Ltd Darstellung kundenspezifisches Dateninhalts
US7519702B1 (en) * 2000-08-10 2009-04-14 International Business Machines Corporation Method and apparatus for measuring web site performance
US20020046262A1 (en) * 2000-08-18 2002-04-18 Joerg Heilig Data access system and method with proxy and remote processing
WO2002021312A2 (en) * 2000-09-05 2002-03-14 Vocaltec Communications Ltd. System and method for facilitating coordinated browsing of data objects
FR2814571A1 (fr) * 2000-09-28 2002-03-29 Eastman Kodak Co Procede pour fournir a un client du type concepteur de site web ou hebergeur de site web un outil de transformation d'une image d'un premier format dans un second format
US6766354B1 (en) 2000-09-28 2004-07-20 Intel Corporation Speed sensitive content delivery in a client-server network
AU2002213045A1 (en) * 2000-10-04 2002-04-15 Routefree, Inc. Replacement of requested data with equivalent data
US7249196B1 (en) * 2000-10-06 2007-07-24 Juniper Networks, Inc. Web page source file transfer system and method
US6834297B1 (en) 2000-10-06 2004-12-21 Redline Networks, Inc. Web resource transfer acceleration system and method
US6847333B2 (en) * 2000-10-13 2005-01-25 Edward Bokhour Method of and system for low-bandwidth transmission of color video
US20020059458A1 (en) * 2000-11-10 2002-05-16 Deshpande Sachin G. Methods and systems for scalable streaming of images with server-side control
US6407680B1 (en) * 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
US7242324B2 (en) 2000-12-22 2007-07-10 Sony Corporation Distributed on-demand media transcoding system and method
US6961754B2 (en) * 2001-01-12 2005-11-01 Telefonaktiebolaget Lm Ericsson Interactive access, manipulation, sharing and exchange of multimedia data
US20020099745A1 (en) * 2001-01-23 2002-07-25 Neo-Core, L.L.C. Method and system for storing a flattened structured data document
JP2004518218A (ja) * 2001-01-26 2004-06-17 ピクチャーアイキュー コーポレイション マルチメディア・コンテンツを動的に最適化してネットワーク配信する方法及び装置
JP2002236682A (ja) 2001-02-13 2002-08-23 Fuji Photo Film Co Ltd データベース・システム
US7069342B1 (en) * 2001-03-01 2006-06-27 Cisco Technology, Inc. Communication system with content-based data compression
JP4191932B2 (ja) * 2001-03-08 2008-12-03 パナソニック株式会社 メディア配信装置およびメディア配信方法
US20030028643A1 (en) * 2001-03-13 2003-02-06 Dilithium Networks, Inc. Method and apparatus for transcoding video and speech signals
US7380250B2 (en) * 2001-03-16 2008-05-27 Microsoft Corporation Method and system for interacting with devices having different capabilities
US7747781B2 (en) * 2001-04-20 2010-06-29 Palmsource Inc. Content access from a communications network using a handheld computer system and method
US7725604B1 (en) * 2001-04-26 2010-05-25 Palmsource Inc. Image run encoding
US20020174217A1 (en) * 2001-05-18 2002-11-21 Gateway, Inc. System and method for predicting network performance
US7219145B2 (en) * 2001-05-30 2007-05-15 Qualcomm Incorporated Method and apparatus for individually estimating time required to download application programs to remote modules over wireless network
EP1265398A1 (de) * 2001-06-08 2002-12-11 Hewlett Packard Company, a Delaware Corporation Proces für das Personifizieren einer Verhandlung durch ein Internet- oder Intranet
US7043560B2 (en) * 2001-06-19 2006-05-09 Nokia, Inc. Dynamic probing and reporting of bit rate information
US7827257B2 (en) * 2001-06-19 2010-11-02 Intel Corporation System and method for automatic and adaptive use of active network performance measurement techniques to find the fastest source
US7526572B2 (en) 2001-07-12 2009-04-28 Research In Motion Limited System and method for providing remote data access for a mobile communication device
EP1853038A3 (de) * 2001-07-12 2009-04-01 Research In Motion Limited System und Verfahren zur Bereitstellung des Ferndatenzugriffs auf ein mobiles Kommunikationsgerät
WO2003007184A1 (en) * 2001-07-12 2003-01-23 Research In Motion Limited System and method for pushing data from an information source to a mobile communication device including transcoding of the data
US7383347B2 (en) * 2001-07-18 2008-06-03 International Business Machines Corporation Method and apparatus for providing extensible scalable transcoding of multimedia content
US7908628B2 (en) 2001-08-03 2011-03-15 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator content coding and formatting
US7793326B2 (en) 2001-08-03 2010-09-07 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator
US20030028890A1 (en) * 2001-08-03 2003-02-06 Swart William D. Video and digital multimedia acquisition and delivery system and method
US8285701B2 (en) 2001-08-03 2012-10-09 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator remote content crawler
JP4731075B2 (ja) * 2001-09-28 2011-07-20 富士通株式会社 情報提供方法、情報提供システム、端末装置、中央装置、コンピュータプログラム、及び記録媒体
US7415539B2 (en) * 2001-09-28 2008-08-19 Siebel Systems, Inc. Method and apparatus for detecting insufficient memory for data extraction processes
US7127503B2 (en) * 2001-10-10 2006-10-24 Juniper Networks, Inc. Computer networking system, device, and method for improved speed in web page rendering
US7480703B2 (en) 2001-11-09 2009-01-20 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user based on response of the user
US7356575B1 (en) 2001-11-09 2008-04-08 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user
US7730165B2 (en) 2001-11-09 2010-06-01 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user
US20030105880A1 (en) * 2001-12-04 2003-06-05 Koninklijke Philips Electronics N.V. Distributed processing, storage, and transmision of multimedia information
KR20030070427A (ko) * 2002-02-25 2003-08-30 삼성에스디에스 주식회사 심볼 개념을 이용한 데이터 파일의 스트리밍 전송 방법
WO2003085924A1 (en) * 2002-04-05 2003-10-16 Telefonaktiebolaget Lm Ericsson (Publ) Object transfer control in a communications network
US7233790B2 (en) 2002-06-28 2007-06-19 Openwave Systems, Inc. Device capability based discovery, packaging and provisioning of content for wireless mobile devices
US7299033B2 (en) 2002-06-28 2007-11-20 Openwave Systems Inc. Domain-based management of distribution of digital content from multiple suppliers to multiple wireless services subscribers
US7051040B2 (en) 2002-07-23 2006-05-23 Lightsurf Technologies, Inc. Imaging system providing dynamic viewport layering
US7558198B2 (en) * 2002-08-19 2009-07-07 Motorola, Inc. Method and apparatus for data transfer
US6832259B2 (en) * 2002-08-29 2004-12-14 Motorola, Inc. Dynamic adjustment of transmitted data size for a subscriber device
JP3760904B2 (ja) * 2002-09-06 2006-03-29 ソニー株式会社 Guiアプリケーション開発支援装置、gui表示装置、および方法、並びにコンピュータ・プログラム
JP3755500B2 (ja) 2002-09-06 2006-03-15 ソニー株式会社 Guiアプリケーション開発支援装置および方法、並びにコンピュータ・プログラム
US7574653B2 (en) * 2002-10-11 2009-08-11 Microsoft Corporation Adaptive image formatting control
US8364815B2 (en) 2005-03-18 2013-01-29 Riverbed Technology, Inc. Reliability and availability of distributed servers
US8176186B2 (en) 2002-10-30 2012-05-08 Riverbed Technology, Inc. Transaction accelerator for client-server communications systems
US8069225B2 (en) * 2003-04-14 2011-11-29 Riverbed Technology, Inc. Transparent client-server transaction accelerator
KR100461019B1 (ko) * 2002-11-01 2004-12-09 한국전자통신연구원 소형 화면 단말기를 위한 웹 컨텐츠 변환 시스템 및 방법
US20040098463A1 (en) 2002-11-19 2004-05-20 Bo Shen Transcoding-enabled caching proxy and method thereof
US7426539B2 (en) * 2003-01-09 2008-09-16 Sony Computer Entertainment America Inc. Dynamic bandwidth control
JP2004227383A (ja) * 2003-01-24 2004-08-12 Ntt Docomo Inc コンテンツ配信装置及びコンテンツ配信制御方法
US7779482B1 (en) 2003-02-07 2010-08-17 iGware Inc Delivery of license information using a short messaging system protocol in a closed content distribution system
US8131649B2 (en) 2003-02-07 2012-03-06 Igware, Inc. Static-or-dynamic and limited-or-unlimited content rights
US20100017627A1 (en) 2003-02-07 2010-01-21 Broadon Communications Corp. Ensuring authenticity in a closed content distribution system
US7930434B2 (en) * 2003-03-05 2011-04-19 Microsoft Corporation System and method for managing communication and/or storage of image data
US7075535B2 (en) * 2003-03-05 2006-07-11 Sand Codex System and method for exact rendering in a zooming user interface
US7912299B2 (en) * 2004-10-08 2011-03-22 Microsoft Corporation System and method for efficiently encoding data
US7133054B2 (en) * 2004-03-17 2006-11-07 Seadragon Software, Inc. Methods and apparatus for navigating an image
US7546419B2 (en) * 2004-06-01 2009-06-09 Aguera Y Arcas Blaise Efficient data cache
US7042455B2 (en) * 2003-05-30 2006-05-09 Sand Codex Llc System and method for multiple node display
US7254271B2 (en) * 2003-03-05 2007-08-07 Seadragon Software, Inc. Method for encoding and serving geospatial or other vector data as images
US7895513B1 (en) * 2003-05-28 2011-02-22 Adobe Systems Incorporated Color reduction in complex figures containing text for space/time constrained platforms
US9553879B2 (en) * 2003-06-06 2017-01-24 Core Wireless Licensing S.A.R.L. Method and apparatus to represent and use rights for content/media adaptation/transformation
US9100814B2 (en) 2003-09-17 2015-08-04 Unwired Plant, Llc Federated download of digital content to wireless devices
US7860309B1 (en) 2003-09-30 2010-12-28 Verisign, Inc. Media publishing system with methodology for parameterized rendering of image regions of interest
US8068436B2 (en) 2003-10-15 2011-11-29 Microsoft Corporation Methods and systems for estimating network available bandwidth using packet pairs and spatial filtering
CN101330525B (zh) * 2003-10-31 2011-08-10 索尼株式会社 远程确定多媒体内容用户的配置的系统和方法
US7778326B1 (en) * 2003-12-23 2010-08-17 At&T Intellectual Property Ii, L.P. System and method for dynamically determining multimedia transmission based on communication bandwidth
US7343037B1 (en) 2004-02-04 2008-03-11 Microsoft Corporation Dynamic, locally-adaptive, lossless palettization of color and grayscale images
KR101164788B1 (ko) * 2004-03-23 2012-07-11 엔디에스 리미티드 이동 가입자 단말기 재생에 적합하게 순응하는 멀티미디어콘텐트
US7890604B2 (en) 2004-05-07 2011-02-15 Microsoft Corproation Client-side callbacks to server events
US9026578B2 (en) 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US7782789B2 (en) * 2004-09-23 2010-08-24 Harris Corporation Adaptive bandwidth utilization for telemetered data
US7620068B2 (en) * 2004-11-08 2009-11-17 Harris Corporation Adaptive bandwidth utilization for telemetered data
US7610400B2 (en) * 2004-11-23 2009-10-27 Juniper Networks, Inc. Rule-based networking device
KR100744532B1 (ko) * 2004-12-13 2007-08-02 한국전자통신연구원 프리퍼런스 정보를 이용한 웹서비스 제공방법 및 장치
FR2879873B1 (fr) * 2004-12-17 2007-02-02 Canon Kk Procede et dispositif de transfert de donnees numeriques
WO2006066632A1 (en) * 2004-12-24 2006-06-29 Telecom Italia S.P.A. Media transcoding in multimedia delivery services
US8117299B2 (en) * 2005-01-18 2012-02-14 Lenovo (Singapore) Pte. Ltd. Method and apparatus for scheduling wireless LAN traffic
US8073275B2 (en) * 2005-02-09 2011-12-06 Mobixell Networks Ltd. Image adaptation with target size, quality and resolution constraints
US20060248194A1 (en) 2005-03-18 2006-11-02 Riverbed Technology, Inc. Connection forwarding
EP1864222A4 (de) * 2005-03-29 2012-03-21 Microsoft Corp System und verfahren zur übertragung von webseitendaten
US20060235941A1 (en) * 2005-03-29 2006-10-19 Microsoft Corporation System and method for transferring web page data
AU2010201379B2 (en) * 2010-04-07 2012-02-23 Limelight Networks, Inc. System and method for delivery of content objects
US9407608B2 (en) * 2005-05-26 2016-08-02 Citrix Systems, Inc. Systems and methods for enhanced client side policy
US9692725B2 (en) 2005-05-26 2017-06-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US9621666B2 (en) 2005-05-26 2017-04-11 Citrix Systems, Inc. Systems and methods for enhanced delta compression
US8312172B2 (en) 2005-05-26 2012-11-13 Bytemobile, Inc. Method and system for delta compression
US8943304B2 (en) 2006-08-03 2015-01-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US7974988B2 (en) 2006-02-24 2011-07-05 Syniverse Icx Corporation System and method for cross-carrier mobile device capability discovery
US20070258445A1 (en) * 2006-05-02 2007-11-08 Harris Corporation Systems and methods for protocol filtering for quality of service
US7756134B2 (en) * 2006-05-02 2010-07-13 Harris Corporation Systems and methods for close queuing to support quality of service
US10664575B2 (en) 2006-05-02 2020-05-26 Acer Cloud Technology, Inc. Virtual vault of licensed content
US7894509B2 (en) * 2006-05-18 2011-02-22 Harris Corporation Method and system for functional redundancy based quality of service
US8463843B2 (en) * 2006-05-26 2013-06-11 Riverbed Technology, Inc. Throttling of predictive ACKs in an accelerated network communication system
US8516153B2 (en) * 2006-06-16 2013-08-20 Harris Corporation Method and system for network-independent QoS
US7990860B2 (en) * 2006-06-16 2011-08-02 Harris Corporation Method and system for rule-based sequencing for QoS
US20070291656A1 (en) * 2006-06-16 2007-12-20 Harris Corporation Method and system for outbound content-based QoS
US7856012B2 (en) * 2006-06-16 2010-12-21 Harris Corporation System and methods for generic data transparent rules to support quality of service
US8064464B2 (en) * 2006-06-16 2011-11-22 Harris Corporation Method and system for inbound content-based QoS
US20070291768A1 (en) * 2006-06-16 2007-12-20 Harris Corporation Method and system for content-based differentiation and sequencing as a mechanism of prioritization for QOS
US7916626B2 (en) * 2006-06-19 2011-03-29 Harris Corporation Method and system for fault-tolerant quality of service
US20070291765A1 (en) * 2006-06-20 2007-12-20 Harris Corporation Systems and methods for dynamic mode-driven link management
US8730981B2 (en) * 2006-06-20 2014-05-20 Harris Corporation Method and system for compression based quality of service
US7769028B2 (en) * 2006-06-21 2010-08-03 Harris Corporation Systems and methods for adaptive throughput management for event-driven message-based data
TWI367457B (en) * 2006-07-03 2012-07-01 Nippon Telegraph & Telephone Image processing method and apparatus, image processing program, and storage medium for storing the program
US20080013559A1 (en) * 2006-07-14 2008-01-17 Smith Donald L Systems and methods for applying back-pressure for sequencing in quality of service
US8300653B2 (en) * 2006-07-31 2012-10-30 Harris Corporation Systems and methods for assured communications with quality of service
US20080025318A1 (en) * 2006-07-31 2008-01-31 Harris Corporation Systems and methods for dynamically customizable quality of service on the edge of a network
US8194589B2 (en) * 2006-09-06 2012-06-05 Devicescape Software, Inc. Systems and methods for wireless network selection based on attributes stored in a network database
US7996000B1 (en) * 2006-09-29 2011-08-09 Yahoo! Inc. Managing page sizes for a mobile device using estimation of content customizer techniques
US20080086552A1 (en) * 2006-10-09 2008-04-10 At&T Knowledge Ventures, L.P. Method and apparatus for delivering portal services
US9247259B2 (en) * 2006-10-10 2016-01-26 Flash Networks Ltd. Control of video compression based on file size constraint
US7624276B2 (en) 2006-10-16 2009-11-24 Broadon Communications Corp. Secure device authentication system and method
US9247260B1 (en) * 2006-11-01 2016-01-26 Opera Software Ireland Limited Hybrid bitmap-mode encoding
US8375304B2 (en) * 2006-11-01 2013-02-12 Skyfire Labs, Inc. Maintaining state of a web page
US8711929B2 (en) * 2006-11-01 2014-04-29 Skyfire Labs, Inc. Network-based dynamic encoding
US8443398B2 (en) * 2006-11-01 2013-05-14 Skyfire Labs, Inc. Architecture for delivery of video content responsive to remote interaction
US7613915B2 (en) 2006-11-09 2009-11-03 BroadOn Communications Corp Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
US8200961B2 (en) 2006-11-19 2012-06-12 Igware, Inc. Securing a flash memory block in a secure device system and method
US8212805B1 (en) 2007-01-05 2012-07-03 Kenneth Banschick System and method for parametric display of modular aesthetic designs
WO2008092131A2 (en) * 2007-01-25 2008-07-31 Skyfire Labs, Inc. Mobile device user interface for remote interaction
US20100118190A1 (en) * 2007-02-06 2010-05-13 Mobixell Networks Converting images to moving picture format
JP5116319B2 (ja) * 2007-03-06 2013-01-09 キヤノン株式会社 メッセージ中継装置及び方法
GB0708440D0 (en) * 2007-05-02 2007-06-06 Film Night Ltd Data transmission
US8082507B2 (en) * 2007-06-12 2011-12-20 Microsoft Corporation Scalable user interface
US20090017827A1 (en) * 2007-06-21 2009-01-15 Mobixell Networks Ltd. Convenient user response to wireless content messages
US8893204B2 (en) 2007-06-29 2014-11-18 Microsoft Corporation Dynamically adapting media streams
US8677241B2 (en) * 2007-09-10 2014-03-18 Vantrix Corporation Method and system for multimedia messaging service (MMS) to video adaptation
US8311058B2 (en) 2008-05-10 2012-11-13 Vantrix Corporation Modular transcoding pipeline
US8220051B2 (en) * 2007-09-28 2012-07-10 Vantrix Corporation Generation and delivery of multimedia content-adaptation notifications
EP2210236B1 (de) * 2007-11-02 2018-07-11 Ecole de Technologie Supérieure System und verfahren zur vorhersage der dateigrösse von bildern, die transformation durch skalierung und einer änderung von qualitätskontrollparametern unterzogen werden
US8270739B2 (en) 2007-12-03 2012-09-18 Ecole De Technologie Superieure System and method for quality-aware selection of parameters in transcoding of digital images
US20090210514A1 (en) * 2008-02-15 2009-08-20 Nokia Corporation Methods, apparatuses, computer program products, and systems for mobile web browsing
TWI521939B (zh) * 2008-02-27 2016-02-11 恩康普丁公司 用於低頻寬顯示資訊傳輸之系統及方法
US20090270076A1 (en) * 2008-04-29 2009-10-29 Microsoft Corporation Performance optimizer for mobile devices website
JP4913777B2 (ja) * 2008-06-03 2012-04-11 株式会社シンメトリック Webページ配信システム
US20100146388A1 (en) * 2008-12-05 2010-06-10 Nokia Corporation Method for defining content download parameters with simple gesture
US8300961B2 (en) * 2008-12-12 2012-10-30 Ecole De Technologie Superieure Method and system for low complexity transcoding of images with near optimal quality
US8316558B2 (en) * 2008-12-16 2012-11-27 Skechers U.S.A., Inc. Ii Shoe
US8723891B2 (en) * 2009-02-27 2014-05-13 Ncomputing Inc. System and method for efficiently processing digital video
US8648858B1 (en) * 2009-03-25 2014-02-11 Skyfire Labs, Inc. Hybrid text and image based encoding
US20100281138A1 (en) * 2009-04-29 2010-11-04 Paulo Lerner Froimtchuk Method and system for remote coprocessor
US20100312828A1 (en) * 2009-06-03 2010-12-09 Mobixell Networks Ltd. Server-controlled download of streaming media files
US20110022692A1 (en) * 2009-07-24 2011-01-27 Jeyhan Karaoguz Method and system for determining and controlling user experience in a network
EP2507938B1 (de) 2009-12-01 2019-07-03 Vantrix Corporation System und verfahren zur effizienten medienbereitstellung mithilfe eines cache-speichers
US8849975B2 (en) * 2010-02-02 2014-09-30 Webtrends Inc. Method and system for test-duration estimation
US8527649B2 (en) * 2010-03-09 2013-09-03 Mobixell Networks Ltd. Multi-stream bit rate adaptation
US8244874B1 (en) 2011-09-26 2012-08-14 Limelight Networks, Inc. Edge-based resource spin-up for cloud computing
US8745239B2 (en) 2010-04-07 2014-06-03 Limelight Networks, Inc. Edge-based resource spin-up for cloud computing
JP5516170B2 (ja) * 2010-07-14 2014-06-11 ブラザー工業株式会社 通信装置及びコンピュータプログラム
US8832709B2 (en) 2010-07-19 2014-09-09 Flash Networks Ltd. Network optimization
US20120084423A1 (en) * 2010-10-04 2012-04-05 Openwave Systems Inc. Method and system for domain based dynamic traffic steering
US8907987B2 (en) 2010-10-20 2014-12-09 Ncomputing Inc. System and method for downsizing video data for memory bandwidth optimization
US8782165B2 (en) * 2011-01-26 2014-07-15 Openwave Mobility, Inc. Method and transcoding proxy for transcoding a media stream that is delivered to an end-user device over a communications network
TWI575948B (zh) * 2011-02-11 2017-03-21 內數位專利控股公司 內容分配及接收方法及裝置
US8688074B2 (en) 2011-02-28 2014-04-01 Moisixell Networks Ltd. Service classification of web traffic
CN102685169B (zh) * 2011-03-17 2015-05-20 腾讯科技(北京)有限公司 一种缩略图的大图预加载方法及系统
US8782532B2 (en) * 2011-06-10 2014-07-15 Qualcomm Innovation Center, Inc. Website object-request method and system
US9137551B2 (en) * 2011-08-16 2015-09-15 Vantrix Corporation Dynamic bit rate adaptation over bandwidth varying connection
JP5507515B2 (ja) 2011-09-14 2014-05-28 富士フイルム株式会社 非可逆圧縮装置およびその動作制御方法ならびにその動作制御プログラム
US9465572B2 (en) 2011-11-09 2016-10-11 Microsoft Technology Licensing, Llc Dynamic server-side image sizing for fidelity improvements
US9020254B2 (en) * 2011-12-15 2015-04-28 Microsoft Technology Licensing, Llc Dynamic image quality checker for use in image transcoding
US9532080B2 (en) 2012-05-31 2016-12-27 Sonic Ip, Inc. Systems and methods for the reuse of encoding information in encoding alternative streams of video data
US9112922B2 (en) 2012-08-28 2015-08-18 Vantrix Corporation Method and system for self-tuning cache management
US8775648B1 (en) 2013-12-30 2014-07-08 Limelight Networks, Inc. Control systems and methods for cloud resource management
CN103795770B (zh) * 2012-10-26 2017-07-04 伊姆西公司 在网络基础设施中提供高速缓存服务的方法和装置
EP2728802B1 (de) * 2012-11-02 2020-08-12 Deutsche Telekom AG Verfahren und system zur netzwerk-und service-gesteuerte hybrid
US20140258382A1 (en) * 2013-02-14 2014-09-11 Tibco Software Inc. Application congestion control
US9357210B2 (en) 2013-02-28 2016-05-31 Sonic Ip, Inc. Systems and methods of encoding multiple video streams for adaptive bitrate streaming
US9338450B2 (en) 2013-03-18 2016-05-10 Ecole De Technologie Superieure Method and apparatus for signal encoding producing encoded signals of high fidelity at minimal sizes
US9661331B2 (en) 2013-03-18 2017-05-23 Vantrix Corporation Method and apparatus for signal encoding realizing optimal fidelity
US10609405B2 (en) 2013-03-18 2020-03-31 Ecole De Technologie Superieure Optimal signal encoding based on experimental data
US9552438B2 (en) * 2013-05-17 2017-01-24 Paypal, Inc. Systems and methods for responsive web page delivery based on network bandwidth
JP6146230B2 (ja) * 2013-09-19 2017-06-14 富士通株式会社 中継装置、シンクライアントシステム、中継方法および中継プログラム
KR102148001B1 (ko) * 2013-10-17 2020-08-25 삼성전자주식회사 디스플레이 장치 및 디스플레이 장치의 제어 방법
KR20150084307A (ko) * 2014-01-13 2015-07-22 삼성전자주식회사 네트워크에서 웹 로딩 시간 제어 방법 및 장치
US9787799B2 (en) 2014-02-27 2017-10-10 Dropbox, Inc. Systems and methods for managing content items having multiple resolutions
US10885104B2 (en) 2014-02-27 2021-01-05 Dropbox, Inc. Systems and methods for selecting content items to store and present locally on a user device
US9521176B2 (en) 2014-05-21 2016-12-13 Sony Corporation System, method, and computer program product for media publishing request processing
US9414081B1 (en) * 2014-11-04 2016-08-09 Sprint Communications Company L.P. Adaptation of digital image transcoding based on estimated mean opinion scores of digital images
US20160191934A1 (en) * 2014-12-29 2016-06-30 Arris Enterprises, Inc. Method to optimize the quality of video delivered over a network
US9836528B1 (en) * 2015-07-20 2017-12-05 Google Inc. Data constrained resource access
US10645191B1 (en) * 2015-09-21 2020-05-05 Amazon Technologies, Inc. User controlled composition of content
US10198355B2 (en) 2015-10-29 2019-02-05 Dropbox, Inc. Proving a dynamic digital content cache
US10320642B2 (en) * 2017-03-24 2019-06-11 Nec Corporation Dynamic TCP proxy selection for acceleration of short network flows
US10630755B2 (en) * 2017-04-19 2020-04-21 Microsoft Technology Licensing, Llc Selective consumption of web page data over a data-limited connection
US20190180484A1 (en) * 2017-12-11 2019-06-13 Capital One Services, Llc Systems and methods for digital content delivery over a network
US10983677B2 (en) 2018-11-16 2021-04-20 Dropbox, Inc. Prefetching digital thumbnails from remote servers to client devices based on a dynamic determination of file display criteria

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01211147A (ja) 1988-02-19 1989-08-24 Fujitsu Ltd ファイル伝送方式
JPH07152668A (ja) 1993-11-26 1995-06-16 Canon Inc 情報処理装置及び通信方法
US5727159A (en) * 1996-04-10 1998-03-10 Kikinis; Dan System in which a Proxy-Server translates information received from the Internet into a form/format readily usable by low power portable computers
US5673322A (en) * 1996-03-22 1997-09-30 Bell Communications Research, Inc. System and method for providing protocol translation and filtering to access the world wide web from wireless or low-bandwidth networks
US5764235A (en) 1996-03-25 1998-06-09 Insight Development Corporation Computer implemented method and system for transmitting graphical images from server to client at user selectable resolution
US5918013A (en) * 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
JP3683051B2 (ja) 1996-10-18 2005-08-17 三菱電機株式会社 データ送信方式
JPH10164092A (ja) 1996-11-28 1998-06-19 Canon Inc データ転送装置
US6345303B1 (en) * 1997-03-25 2002-02-05 Intel Corporation Network proxy capable of dynamically selecting a destination device for servicing a client request
US6311215B1 (en) * 1997-03-25 2001-10-30 Intel Corporation System for dynamic determination of client communications capabilities
US6215774B1 (en) * 1997-03-25 2001-04-10 Intel Corporation System for dynamically determining effective speed of a communication link
US6421733B1 (en) * 1997-03-25 2002-07-16 Intel Corporation System for dynamically transcoding data transmitted between computers
US6345300B1 (en) * 1997-03-25 2002-02-05 Intel Corporation Method and apparatus for detecting a user-controlled parameter from a client device behind a proxy
US6237031B1 (en) * 1997-03-25 2001-05-22 Intel Corporation System for dynamically controlling a network proxy
US6396805B2 (en) * 1997-03-25 2002-05-28 Intel Corporation System for recovering from disruption of a data transfer
US6304904B1 (en) * 1997-03-27 2001-10-16 Intel Corporation Method and apparatus for collecting page-level performance statistics from a network device
US6247050B1 (en) * 1997-09-12 2001-06-12 Intel Corporation System for collecting and displaying performance improvement information for a computer
US6101328A (en) * 1997-12-31 2000-08-08 Intel Corporation System for preventing multiple instances of the same dynamic executable module
US6343350B1 (en) * 1998-02-13 2002-01-29 International Business Machines Corporation Conserving storage space by means of low resolution objects
JPH11250009A (ja) * 1998-03-04 1999-09-17 Uniden Corp サーバ装置及びウェブデータ変換方式
US6247048B1 (en) * 1998-04-30 2001-06-12 Openwave Systems Inc Method and apparatus for transcoding character sets between internet hosts and thin client devices over data networks

Also Published As

Publication number Publication date
EP0992922A3 (de) 2001-01-10
EP0992922B1 (de) 2004-08-18
DE69919474D1 (de) 2004-09-23
KR20000034960A (ko) 2000-06-26
US6563517B1 (en) 2003-05-13
EP0992922A2 (de) 2000-04-12
ATE274207T1 (de) 2004-09-15
KR100353172B1 (ko) 2002-09-18

Similar Documents

Publication Publication Date Title
DE69919474T2 (de) Automatische Anpassung der Qualität von Bilddaten um die Antwortzeiten eines Web-Servers zu reduzieren
Han et al. Dynamic adaptation in an image transcoding proxy for mobile web browsing
DE69732605T2 (de) Dynamisches Cachespeicher-Vorladen über lose gekoppelte administrative Bereiche
DE10344017B4 (de) Server, Client, Vorrichtung und Verfahren zum Streamen von Multimediadaten und Netzwerkbandbreitenmessverfahren
DE60208786T2 (de) Übertragungskontrolle für objekte in einem kommunikationsnetzwerk
DE60210733T2 (de) System und Verfahren zur Überlastregelung in Netzwerken
DE602004012010T2 (de) Drucken von einem drahtlosen WAN
EP1559038B1 (de) Verfahren zum vorabübertragen strukturierter datenmengen zwischen einer clienteinrichtung und einer servereinrichtung
US6658167B1 (en) On the fly server for modifying data characteristics for client-server network applications
DE69736298T2 (de) Rekomprimierungsserver
DE60112759T2 (de) Vorrichtungen und verfahren zur datenübertragung
DE69736045T2 (de) Verfahren zum Übertragen und Darstellen von Datenseiten in einem Datennetzwerk
DE60123072T2 (de) System zur datenkommunikation
DE60213185T2 (de) Verfahren und Vorrichtung zur Datenübertragung
DE10051024A1 (de) Methode zum Einrichten optimaler intermediärer Cachingpunkte durch Gruppierung von Programmelementen in einem Softwaresystem
CA2435923A1 (en) Compression system for low-bandwith client-server data link
DE10350894B4 (de) Verfahren zur Übertragung von Daten
JP5079128B2 (ja) 交換符号化プロキシのための方法およびシステム
DE202010018478U1 (de) Cachen von Informationen
DE102011013310A1 (de) Adaptives Szenen-Rendering und gemeinsame V2X-Nutzung von Videos/Bildern
DE60017488T2 (de) Verfahren zum Steuern des Abrufs von Information mit einer vom Datentyp abhängigen Strategie um die Antwortzeit für die Verbraucher zu verringern
DE602004011211T2 (de) Verfahren zur anpassung der dienstortplazierung auf der basis von aus dienstknoten empfangenen neueren daten und aktionen des dienstortsmanagers
DE10296924B4 (de) Anwenderbestimmtes selektives Neuladen von Bildern
DE60110878T2 (de) Verfahren zur Objektfiltrierung und Klientgerät unter Verwendung desselben
DE69834647T2 (de) System, verfahren und program zur dynamischen transkodierung von zwischen rechnern uebertragenen daten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)