NL1033929C1 - Parallel user session streaming method, involves assembling data stream per session by applying encoded fragments that are suitable for assembling video data in predefined format and for application in images, to video data - Google Patents

Parallel user session streaming method, involves assembling data stream per session by applying encoded fragments that are suitable for assembling video data in predefined format and for application in images, to video data Download PDF

Info

Publication number
NL1033929C1
NL1033929C1 NL1033929A NL1033929A NL1033929C1 NL 1033929 C1 NL1033929 C1 NL 1033929C1 NL 1033929 A NL1033929 A NL 1033929A NL 1033929 A NL1033929 A NL 1033929A NL 1033929 C1 NL1033929 C1 NL 1033929C1
Authority
NL
Netherlands
Prior art keywords
fragments
data
server
sessions
video
Prior art date
Application number
NL1033929A
Other languages
Dutch (nl)
Inventor
Ronald Brockmann
Original Assignee
Avinity Systems B V
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
Priority claimed from NL1032594A external-priority patent/NL1032594C2/en
Application filed by Avinity Systems B V filed Critical Avinity Systems B V
Priority to NL1033929A priority Critical patent/NL1033929C1/en
Priority to JP2009530298A priority patent/JP5936805B2/en
Priority to PCT/NL2007/000245 priority patent/WO2008044916A2/en
Priority to EP07834561A priority patent/EP2105019A2/en
Priority to US12/443,571 priority patent/US20100146139A1/en
Priority to EP12163712.8A priority patent/EP2477414A3/en
Priority to EP12163713.6A priority patent/EP2487919A3/en
Application granted granted Critical
Publication of NL1033929C1 publication Critical patent/NL1033929C1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Abstract

The method involves defining encoded fragments based on a reusable image data by an application fragment creation server (4), where the encoded fragments are suitable for assembling a video data in a predefined data format and for application in images and/or sessions. A data stream containing the video data per session is assembled by applying the encoded fragments to the video data. The assembled data stream is transmitted to a client device (3) e.g. set-top-box, in response to reception of user instructions. Independent claims are also included for the following: (1) a system for streaming parallel user sessions from a server to a client device (2) a method for rendering objects of any shape after mapping objects to macro blocks (3) a computer program product having a set of instructions for streaming parallel user sessions from a server to a client device.

Description

WERKWIJZE VOOR HET STREAMEN VAN PARALLELLE GEBRUIKERSSESSIES , SYSTEEM EN COMPUTERPROGRAMMATUUR.METHOD FOR STREAMING PARALLEL USER SESSIONS, SYSTEM AND COMPUTER SOFTWARE.

De onderhavige uitvinding betreft een werkwijze 5 voor het streamen van parallelle gebruikerssessies van ten minste een server naar minste een cliëntinrichting van een veelvoud aan cliëntinrichtingen voor het weergeven van een sessie op een aan de cliëntinrichting koppelbaar beeldscherm waarbij de sessies videodata en eventuele additio-10 nele data zoals audiodata omvatten. Voorts betreft de uitvinding een systeem voor het streamen van dergelijke gebruikerssessies . Voorts betreft de uitvinding computerprogrammatuur voor het uitvoeren van een dergelijke werkwijze en/of voor gebruik in een systeem volgens de onderhavige 15 uitvinding.The present invention relates to a method for streaming parallel user sessions from at least one server to at least one client device of a plurality of client devices for displaying a session on a screen that can be connected to the client device, wherein the sessions have video data and any additional data. data such as audio data. The invention further relates to a system for streaming such user sessions. The invention further relates to computer software for carrying out such a method and / or for use in a system according to the present invention.

Voor het weergeven van een gebruikersinterface voor gebruik in een toepassing van een gebruiker zijn vele oplossingen bekend. Naast de alom bekende PC betreffen voorbeelden hiervan bijvoorbeeld oplossingen die gebruik 20 maken van bijvoorbeeld een webbrowser voor het op de cli-entinrichting renderen van de gebruikersinterface. Hierbij wordt veelal gebruik gemaakt van additionele software op basis van een virtual machine zoals bijvoorbeeld javascript, Macromedia flash MX, JAVA-gebaseerde omgevingen 25 zoals MHP, BD-J en/of Open TV. Een voordeel van dergelijke inrichtingen is dat aantrekkelijke omgevingen kunnen worden gecreëerd of dat de hoeveelheid over te zenden data relatief beperkt kan worden gehouden. Een nadeel van dergelijke systemen is dat er een nauwe afstemming dient te 30 bestaan tussen de software op de servers en op de cliëntinrichtingen ten behoeve van de compatibiliteit daartussen. Geringe versie- of implementatieverschillen leiden relatief vaak tot operationele problemen of afwijkingen in 1033929 2 de weergave van de gebruikersinterface. Een verder nadeel van dergelijke complexe middleware kan bestaan uit veiligheidsrisico's, omvattende aanvallen op de virtual machine door middel van wormen, Trojaanse paarden of virussen. De 5 praktische bruikbaarheid van een ontwerp van een grafische gebruikersinterface wordt over het algemeen beperkt door de mogelijkheden van de cliëntinrichtingen. Indien nieuwe mogelijkheden worden ingevoerd kan er een geruime tijd overheen gaan voordat alle cliëntinrichtingen zijn voor-10 zien van nieuwe softwareversies. Een dergelijke upgrade vereist voorts een complexe organisatie van servers en datatransport. Een verder nadeel van de bekende systemen is dat over het algemeen een grote verwerkingskracht ofwel rekenkracht vereist is op de cliëntinrichtingen.Many solutions are known for displaying a user interface for use in a user's application. In addition to the well-known PC, examples of these include, for example, solutions that use, for example, a web browser for rendering the user interface on the client device. For this, use is often made of additional software based on a virtual machine such as for example javascript, Macromedia flash MX, JAVA-based environments such as MHP, BD-J and / or Open TV. An advantage of such devices is that attractive environments can be created or that the amount of data to be transferred can be kept relatively limited. A drawback of such systems is that there must be close coordination between the software on the servers and on the client devices for compatibility between them. Minor version or implementation differences relatively often lead to operational problems or deviations in the user interface display. A further disadvantage of such complex middleware can consist of security risks, including attacks on the virtual machine by means of worms, Trojan horses or viruses. The practical usability of a graphic user interface design is generally limited by the capabilities of the client devices. If new possibilities are introduced, it may take a considerable time before all client devices are provided with new software versions. Such an upgrade also requires a complex organization of servers and data transport. A further drawback of the known systems is that in general a large processing power or computing power is required on the client devices.

15 Zelfs de naast de PC bekende, als eenvoudig be doelde, opzetkastjes groeien daardoor uit tot zware clients met moeilijk te onderhouden middleware, althans de mogelijkheden voor upgrades zijn laag en de distributie van de software lastig. Een verder probleem hierbij is dat 20 functionaliteit in opzetkastjes over het algemeen is verwerkt in hardware waardoor updates zeer kostbaar zijn.As a result, even the set-up boxes known next to the PC, which are simply referred to, grow into heavy clients with middleware that are difficult to maintain, at least the possibilities for upgrades are low and the distribution of the software is difficult. A further problem here is that functionality in top boxes is generally processed in hardware, which makes updates very expensive.

Teneinde dergelijke nadelen te ondervangen, verschaft de onderhavige uitvinding een werkwijze voor het streamen van een aantal parallelle gebruikerssessies (ses-25 sies) van ten minste één server naar ten minste één cliënt van een veelvoud aan een cliëntinrichting voor het weergeven van de sessie op een aan de cliëntinrichting koppel-baar beeldscherm, waarbij dergelijke sessies videodata en eventuele additionele data zoals audiodata omvatten, waar-30 bij de werkwijze stappen omvat voor: - het op basis van herbruikbare beeldinformatie definiëren gecodeerde fragmenten, waarbij de gecodeerde fragmenten geschikt zijn voor het samenstellen van de vi- 3 deodata in een vooraf bepaald dataformaat, zoals een vi-deostandaard of een videocodec, en de gecodeerde fragmenten geschikt zijn voor toepassing in een of meer beelden en/of een of meer sessies, 5 - het per sessie samenstellen van een datastroom omvattende videogegevens onder toepassing van de gecodeerde fragmenten.In order to obviate such drawbacks, the present invention provides a method for streaming a number of parallel user sessions (ses-25s) from at least one server to at least one client of a plurality of a client device for displaying the session on a display linkable to the client device, such sessions comprising video data and any additional data such as audio data, the method comprising steps for: - coding fragments defined on the basis of reusable image information, the coded fragments being suitable for composing of the video data in a predetermined data format, such as a video standard or a video codec, and the encoded fragments are suitable for use in one or more images and / or one or more sessions, data stream comprising video data using the encoded fragments.

Een voordeel van een dergelijke werkwijze volgens de onderhavige uitvinding is dat gebruik gemaakt kan wor-10 den van zeer licht uitgevoerde thin cliënts, zoals cliënt-inrichtingen met zeer basale videodecoderingscapaciteiten. Er kan aan de gebruikerszijde bijvoorbeeld worden volstaan met een inrichting die in staat is tot het decoderen van MPEG streams. Aan de serverzijde kan onder gebruikmaking 15 van een dergelijke werkwijze volgens de onderhavige uitvinding een groot aantal parallelle sessies worden ondersteund, waarbij voor elke sessie slechts een fractie van de rekenkracht is vereist die zou zijn vereist voor het op bekende wijze genereren van bijvoorbeeld een Mpeg stream. 20 Hetzelfde voordeel bestaat bij het coderen onder gebruikmaking van andere codecs. Voor het toepassen van de onderhavige uitvinding volstaan bij voorbeeld zelfs eenvoudige inrichtingen als DVD-spelers met bijvoorbeeld een netwerkaansluiting. Vanzelfsprekend kunnen aanwezige meer 25 complexe inrichtingen tevens worden toegepast aan de zijde van de eindgebruikers. Hierbij gelden voorts geen verdere vereisten aan een dergelijke inrichting dan dat een standaard gecodeerde datastroom (codec) kan worden weergegeven. Ten opzichte van de genoemde systemen volgens de 30 stand van de techniek is dit een aanzienlijke vereenvoudiging.An advantage of such a method according to the present invention is that use can be made of very lightly executed thin clients, such as client devices with very basic video decoding capabilities. On the user side, for example, a device that is capable of decoding MPEG streams will suffice. On the server side, using such a method according to the present invention, a large number of parallel sessions can be supported, wherein for each session only a fraction of the computing power is required that would be required for generating, for example, a Mpeg stream in a known manner. . The same advantage exists when coding using other codecs. For the application of the present invention, for example, even simple devices such as DVD players with, for example, a network connection are sufficient. Naturally, more complex devices that are present can also be used on the part of the end users. Furthermore, no further requirements apply to such a device than that a standard coded data stream (codec) can be displayed. Compared to the mentioned systems according to the prior art, this is a considerable simplification.

In een voorkeursuitvoeringsvorm omvat de werkwijze volgens de onderhavige uitvinding stappen voor het bij het 4 definiëren van de gecodeerde fragmenten toepassen van een aantal in een raster rangschikbare codeerslices onder afhankelijkheid van weer te geven beeldobjecten in de grafische gebruikersinterface. Een voordeel hiervan is dat ge-5 bruik kan worden gemaakt van de beeldopbouw van een data-formaat. Een voorbeeld hiervan is dat gebruik kan worden gemaakt van slices die zijn opgebouwd uit een aantal ma-croblokken bij bijvoorbeeld MPEG2.In a preferred embodiment, the method according to the present invention comprises steps for applying a number of coding sequences that can be arranged in a frame when defining the coded fragments, depending on image objects to be displayed in the graphical user interface. An advantage hereof is that use can be made of the image structure of a data format. An example of this is that use can be made of slices that are built up from a number of macro blocks in MPEG2, for example.

Bij voorkeur omvat de werkwijze voorts stappen 10 voor het uitvoeren van orthogonale bewerkingen op texture-maps voor het mogelijk maken van bewerkingen op een gebruikersinterface zonder afhankelijkheid van referentiebeelden van het datafornaat. Een voordeel hiervan is dat het mogelijk wordt dat bewerkingen op de gebruikersinter-15 face kunnen worden uitgevoerd zonder of met minimale afhankelijkheid van de daadwerkelijke referentiebeelden waarop de bewerkingen worden uitgevoerd.Preferably, the method further comprises steps 10 for performing orthogonal operations on texture maps to enable operations on a user interface without dependence on reference images of the data format. An advantage hereof is that it becomes possible that operations can be performed on the user interface without or with minimal dependence on the actual reference images on which the operations are performed.

In een verdere voorkeursuitvoeringsvorm omvat de werkwijze stappen voor het verwijzen van gecodeerde frag-20 menten naar beeldpunten van een referentiebeeldbuffer in een decodeerorgaan zelfs indien de beeldpunten in deze buffer niet zijn ingesteld op basis van dit gecodeerde fragment. Hierdoor wordt het mogelijk gemaakt referentiebeeldbuf ferpixels op effectieve wijze toe te passen als 25 een texturemap. Hierdoor wordt de dataoverdracht beperkt en bijvoorbeeld de benodigde rekenkracht op de server verminderd. Voorts is het niet nodig de hand te houden aan bijvoorbeeld een GOP-structuur die bijvoorbeeld bij bekende videoformaten is verschaft voor vrije toegang in de vi-30 deo-stroom, een vrij toegankelijke videostroom is hierbij niet vereist. Een verder voordeel is dat met flexibiliteit die wordt verkregen gecodeerde fragmenten op effectieve wijze kunnen worden samengekoppeld voor het op sequentiële 5 wijze uitvoeren van bewerkingen op pixels in referentie-buffers voor het verkrijgen van gewenste effecten op het beeldscherm.In a further preferred embodiment, the method comprises steps for referring coded fragments to pixels of a reference image buffer in a decoder even if the pixels in this buffer are not set based on this coded fragment. This makes it possible to effectively use reference image buffer fer pixels as a textural map. This limits data transfer and, for example, reduces the required computing power on the server. Furthermore, it is not necessary to adhere, for example, to a GOP structure provided, for example, in known video formats for free access in the video stream, a freely accessible video stream is not required here. A further advantage is that with flexibility obtained, encoded fragments can be effectively coupled together for sequentially performing operations on pixels in reference buffers to achieve desired effects on the display.

Bij voorkeur omvat de werkwijze stappen voor het 5 tijdelijk in een snel toegankelijk geheugen opslaan van de beeldfragmenten. Door het tijdelijk opslaan van de gecodeerde beeldfragmenten in een snel toegankelijk geheugen, wordt het mogelijk het hergebruiken van de gecodeerde fragmenten met grote efficiëntie toe te passen. Een derge-10 lijk snel toegankelijk geheugen kan worden aangeduid als bijvoorbeeld een cachegeheugen. Het heeft de voorkeur een dergelijk cachegeheugen uit te voeren als een RAM-geheugen. Het is echter evenzeer mogelijk een deel van het cachegeheugen uit te voeren als een minder snel toeganke-15 lijk geheugen zoals een harde schijf. Hierdoor wordt het bijvoorbeeld mogelijk gecodeerde fragmenten gedurende een langere tijdsperiode zeker te stellen wanneer de gebruikersinterface gedurende langere periode, bijvoorbeeld met onderbrekingen wordt gebruikt. Door gecodeerde fragmenten 20 uit te lezen uit het tijdelijke geheugen kunnen deze met een tijdsvertraging worden hergebruikt waardoor de fragmenten niet opnieuw behoeven te worden gecodeerd en gedefinieerd.The method preferably comprises steps for temporarily storing the image fragments in a quickly accessible memory. By temporarily storing the encoded image fragments in a quickly accessible memory, it becomes possible to use the reuse of the encoded fragments with great efficiency. Such a quickly accessible memory can be referred to as, for example, a cache memory. It is preferable to implement such a cache memory as a RAM memory. However, it is just as possible to implement a part of the cache memory as a less quickly accessible memory such as a hard disk. This makes it possible, for example, to secure coded fragments for a longer period of time when the user interface is used for a longer period of time, for example with interruptions. By reading coded fragments from the temporary memory, they can be reused with a time delay, as a result of which the fragments do not have to be coded and defined again.

Bij voorkeur omvat de werkwijze stappen voor toe-25 voegen van een tag ten behoeve van identificatie van gecodeerde fragmenten aan de gecodeerde fragmenten. Hierdoor wordt het bijvoorbeeld mogelijk om op basis van de identificatie gegevens bij te houden met betrekking tot de frequentie of intensiteit van het gebruik van een gecodeerd 30 fragment op basis waarvan een bepaalde prioriteit aan een fragment kan worden gegeven. Voorts is hier de mogelijkheid voorzien gegevens met betrekking tot het gebruik in de tijd en/of plaats op een beeldscherm te koppelen aan de 6 gecodeerde fragmenten teneinde een positie van het gecodeerde fragment op correcte wijze in de gebruikersinterface in te passen.Preferably, the method comprises steps of adding a tag for identifying coded fragments to the coded fragments. This makes it possible, for example, to keep track of the frequency or intensity of the use of an encoded fragment on the basis of the identification, on the basis of which a particular priority can be given to a fragment. Furthermore, the possibility is provided here to link data relating to use in time and / or location on a screen to the 6 coded fragments in order to fit a position of the coded fragment in the user interface correctly.

Voor toepassingen van texturemappinggegevens in 5 gecodeerde fragmenten omvat de werkwijze voorts bij voorkeur stappen voor het vervaardigen van dergelijke texturemapping gegevens. Op basis van een texturemappingveld dat wordt verschaft als invoer voor de codeerstappen kan worden bepaald op welke wijze pixels in de referentiebeelden 10 kunnen worden gebruikt. Er kan per pixel of per blok van pixels in het texturemappingveld worden vastgelegd wanneer pixels van de texturemap kunnen worden hergebruikt of vectoren dienen te worden gebruikt voor deze pixels. Voorts is het mogelijk te bepalen of pixelwaarden dienen te wor-15 den bewerkt door middel van optellingen of aftrekkingen.For applications of texture mapping data in coded fragments, the method further preferably comprises steps for producing such texturing mapping data. On the basis of a texture mapping field that is provided as input for the encoding steps, it can be determined how pixels can be used in the reference images. It can be specified per pixel or per block of pixels in the texture mapping field when pixels from the texture map can be reused or vectors should be used for these pixels. Furthermore, it is possible to determine whether pixel values are to be processed by additions or subtractions.

In een verdere voorkeursuitvoeringsvorm omvat de werkwijze stappen voor het gebruiken van gegevens met betrekking tot de vorm en/of dimensies van de slices in de stappen voor het definiëren van de gecodeerde fragmenten. 20 De toepassing van het gebruik van slices met verschillende formaten en vormen verschaft een grote mate van flexibiliteit voor het definiëren van beelden of videobeelden die in de grafische gebruikersinterface worden weergegeven.In a further preferred embodiment, the method comprises steps for using data regarding the shape and / or dimensions of the slices in the steps for defining the encoded fragments. The application of the use of slices of different formats and shapes provides a high degree of flexibility for defining images or video images displayed in the graphical user interface.

Bij voorkeur omvatten de stappen voor het samen-25 stellen van de gecodeerde videostroom stappen voor het gebruiken van media-assets zoals tekst, beelden, video en of geluid. Hierdoor wordt het mogelijk een multimediale interface te verschaffen waarin binnen de definitie van de grafische gebruikersinterface vrijelijk multimediale ele-30 menten kunnen worden weergegeven. Hierdoor wordt het bijvoorbeeld mogelijk kaders te definiëren met daarin bewegelijke beelden of foto's. Hierdoor wordt het bijvoorbeeld mogelijk een grafische gebruikersinterface te verschaffen 7 waarin een fotosharingapplicatie wordt verschaft. Het is hierdoor bijvoorbeeld mogelijk een dergelijke fotosharingapplicatie die op zichzelf bekend is binnen een internetomgeving weer te geven op een normaal televisiescherm on-5 der gebruikmaking van bijvoorbeeld een opzetkasje of een aan een internet gekoppelde Mpeg speler zoals een dvd speler.Preferably, the steps for putting together the encoded video stream include steps for using media assets such as text, images, video and or sound. This makes it possible to provide a multimedia interface in which multimedia elements can be freely displayed within the definition of the graphical user interface. This makes it possible, for example, to define frames containing moving images or photos. This makes it possible, for example, to provide a graphical user interface 7 in which a photo sharing application is provided. This makes it possible, for example, to display such a photo sharing application which is known per se within an internet environment on a normal television screen using, for example, a set-up greenhouse or an Mpeg player connected to an internet, such as a DVD player.

Een verder aspect van de onderhavige uitvinding betreft een systeem voor het streamen van een aantal pa-10 rallelle gebruikerssessies (sessies) van ten minste één server naar ten minste één cliëntinrichting van een veelvoud aan cliëntinrichtingen voor het weergeven van de sessies op een aan een cliëntinrichting koppelbaar beeldscherm, waarbij de sessies videodata en eventuele additio-15 nele data zoals audiodata omvatten, omvattende: - ten minste een server voor het: - coderen van herbruikbare beelddata tot gecodeerde fragmenten, - samenstellen van videostreams omvattende ten 20 minste een gecodeerd fragment, - ontvangstmiddelen voor het ontvangen van ten minste gebruikersinstructies, - verzendmiddelen voor het verzenden van videostreams in een vooraf bepaald dataformaat, zoals Mpeg of 25 H.264, naar de cliëntinrichtingen.A further aspect of the present invention relates to a system for streaming a plurality of parallel user sessions (sessions) from at least one server to at least one client device from a plurality of client devices for displaying the sessions on a client device. connectable display, the sessions comprising video data and any additional data such as audio data, comprising: - at least one server for: - encoding reusable image data into encoded fragments, - composing video streams comprising at least one encoded fragment, - receiving means for receiving at least user instructions, sending means for sending video streams in a predetermined data format, such as Mpeg or H.264, to the client devices.

Met behulp van een dergelijk systeem volgens de onderhavige uitvinding wordt het mogelijk gecodeerde fragmenten te creëren waarin herbruikbare beelddata is opgenomen waardoor het mogelijk wordt om met een beperkte hoe-30 veelheid rekenkracht van de server een veelheid van videostreams samen te stellen voor het ondersteunen van een veelheid van gebruikersinterfaces van gebruikerssessies.With the aid of such a system according to the present invention, it becomes possible to create coded fragments in which reusable image data is included, making it possible to compile a plurality of video streams with a limited amount of computing power from the server to support a video stream. multitude of user interfaces of user sessions.

88

Een dergelijk systeem omvat bij voorkeur snel toegankelijk geheugen, zoals een cachegeheugen voor het tijdelijk opslaan van de gecodeerde fragmenten. Door middel van het tijdelijk opslaan en het hergebruiken van geco-5 deerde fragmenten en deze met een hoge efficiëntie te combineren kunnen gepersonaliseerde videostreams worden gegenereerd onder gebruikmaking van relatief geringe rekenkracht en met lage reactietijden. Het is hierbij voordelig dat er geen kopieën behoeven te worden bijgehouden van de 10 toestand van de referentiebeeldbuffers in de cliëntinrich-ting in tegenstelling tot systemen volgens de stand van de techniek. Hierdoor worden grote hoeveelheden geheugen bespaard.Such a system preferably comprises quickly accessible memory, such as a cache memory for temporarily storing the encoded fragments. By temporarily storing and reusing coded fragments and combining them with high efficiency, personalized video streams can be generated using relatively low computing power and with low response times. It is advantageous here that no copies need to be kept of the state of the reference image buffers in the client device as opposed to prior art systems. This saves large amounts of memory.

In een verdere voorkeursuitvoeringsvorm omvat het 15 systeem middelen voor het omzetten en/of multiplexen van datastromen voor verzending daarvan naar de cliëntinrich-ting. Dergelijke middelen dragen bij aan verder besparen van bandbreedte en/of rekenkracht.In a further preferred embodiment, the system comprises means for converting and / or multiplexing data streams for transmission thereof to the client device. Such means contribute to further saving of bandwidth and / or computing power.

Bij voorkeur omvat het systeem een toepassingsser-20 ver omvattende de ontvangstmiddelen waarbij de toepas- singsserver is ingericht voor het aanpassen van een server en/of gebruikerstoepassing voor weergave via de cliëntin-richting. Bij voorkeur houdt deze toepassingsserver rekening met parameters van het vooraf bepaalde videoformaat, 25 zoals de videocodec zoals MPEG-2 en/of H.264.The system preferably comprises an application server comprising the receiving means, wherein the application server is adapted to adapt a server and / or user application for display via the client device. This application server preferably takes into account parameters of the predetermined video format, such as the video codec such as MPEG-2 and / or H.264.

In een verdere voorkeursuitvoeringsvorm omvat het systeem middelen voor het uitwisselen van gegevens met betrekking tot de inhoud van een snel toegankelijk geheugen en de toepassingsserver. Door deze maatregelen wordt het 30 mogelijk het cachegeheugen en de toepassing daarvan te optimaliseren ten opzichte van gegevens met betrekking tot nog te gebruiken beeldelementen in gebruikersinterfaces waarover de toepassingsserver gegevens heeft.In a further preferred embodiment, the system comprises means for exchanging data with regard to the contents of a quickly accessible memory and the application server. These measures make it possible to optimize the cache memory and its application in relation to data relating to pixels still to be used in user interfaces about which the application server has data.

99

Een verder aspect van de onderhavige uitvinding betreft een systeem volgens de onderhavige uitvinding zoals in het voorgaande is beschreven voor het uitvoeren van een werkwijze volgens de onderhavige uitvinding zoals in 5 het voorgaande is omschreven.A further aspect of the present invention relates to a system according to the present invention as described above for carrying out a method according to the present invention as described in the foregoing.

Een verder aspect van de onderhavige uitvinding betreft computerprogrammatuur voor het uitvoeren van een werkwijze volgens de onderhavige uitvinding en/of voor gebruik in het systeem volgens de onderhavige uitvinding.A further aspect of the present invention relates to computer software for performing a method according to the present invention and / or for use in the system according to the present invention.

10 Verdere voordelen, kenmerken en details van de on derhavige uitvinding zullen in het navolgende in groter detail worden beschreven aan de hand van voorkeursuitvoeringsvormen onder verwijzing naar de aangehechte figuren. In de figuren zijn soortgelijke onderdelen aangeduid mid- 15 dels dezelfde verwijzingscijfers waarbij de vakman binnen het begrip van de uitvinding deze soortgelijkheid alsmede eventuele ondergeschikte verschillen tussen gelijkaange-duide delen zal begrijpen.Further advantages, features and details of the present invention will be described in greater detail below with reference to preferred embodiments with reference to the attached figures. In the figures, similar parts are indicated by means of the same reference numerals, wherein the person skilled in the art will understand this similarity and any minor differences between identical parts within the understanding of the invention.

- Fig. 1 is een schematische weergave van een eer- 20 ste voorkeursuitvoeringsvorm van een systeem omvattende de onderhavige uitvinding, - Fig. 2 is een schematische weergave van een voorkeursuitvoeringsvorm van een deel van het systeem volgens figuur 1, 25 - Fig. 3 is een schematische weergave van een cli- entinrichting die geschikt is voor toepassing van een systeem volgens onderhavige uitvinding, - Fig. 4 is een stroomschema van een voorkeursuitvoeringsvorm van een werkwijze volgens de onderhavige uit- 30 vinding, - Fig. 5 is een stroomschema van een voorkeursuitvoeringsvorm van een werkwijze volgens de onderhavige uitvinding, 10 - Fig. 6 is een stroomschema van een voorkeursuitvoeringsvorm van een werkwijze volgens de onderhavige uitvinding, - Fig. 7 is een stroomschema van een voorkeursuit-5 voeringsvorm van een werkwijze volgens de onderhavige uitvinding - Fig. 8 A-D zijn weergaven van beeldtransities voor toepassing in een systeem of werkwijze volgens de onderhavige uitvinding; 10 - Fig. 9 is een schematische weergave van een ver dere voorkeursuitvoeringsvorm volgens de onderhavige uitvinding; - Fig. 10 is een schematische weergave van een deel van het systeem volgens figuur 9; 15 - Fig. 11 is een sequentiediagram volgens een uit voeringsvorm volgens de onderhavige uitvinding; - Fig. 12 A-C zijn stroomschema's van werkwijze volgens uitvoeringsvormen volgens de onderhavige uitvinding; 20 Een eerste uitvoeringsvorm (fig. 1,2) betreft een deelsysteem voor weergave van gebruikersinterfaces van een gebruikerssessie die dient te worden weergegeven op een beeldscherm van een gebruiker. In globale zin worden applicaties die opereren op een zogenoemde frontendserver 4 25 volgens de onderhavige uitvinding geschikt gemaakt voor weergave via een zogenoemde thin cliënt 3 ofwel cliëntin-richting 3. Een dergelijke thin cliënt is geschikt voor weergave van een signaal in een formaat van een bijvoorbeeld relatief eenvoudige videocodec zoals MPEG-2, H.264, 30 Windows media/ VC-1 en dergelijke. De applicatie die draait op de frontendserver 4 past over het algemeen gegevens toe die afkomstig zijn uit een backendserver 5 die op kenmerkende wijze een combinatie van gegevensbestanden en 11 businesslogica omvat. Het kan hierbij gaan om een op zichzelf bekende internettoepassing. De onderhavige uitvinding is bij uitstek geschikt om grafische toepassingen zoals internettoepassingen weer te geven op bijvoorbeeld een TV-5 scherm. Hoewel het de voorkeur heeft dat een dergelijk TV-scherm relatief hoge resolutie heeft zoals bekend is bij TFT-schermen, LCD-schermen of plasmaschermen is het vanzelfsprekend mogelijk een TV-scherm toe te passen met een relatief oude weergavetechniek als CRT.FIG. 1 is a schematic representation of a first preferred embodiment of a system comprising the present invention; FIG. 2 is a schematic representation of a preferred embodiment of a part of the system according to FIG. 1, FIG. 3 is a schematic representation of a client device suitable for use in a system according to the present invention; FIG. 4 is a flow chart of a preferred embodiment of a method according to the present invention, - FIG. 5 is a flow chart of a preferred embodiment of a method according to the present invention, FIG. 6 is a flow chart of a preferred embodiment of a method according to the present invention, - FIG. 7 is a flow chart of a preferred embodiment of a method according to the present invention - FIG. 8 A-D are representations of image transitions for use in a system or method according to the present invention; 10 - FIG. 9 is a schematic representation of a further preferred embodiment of the present invention; FIG. 10 is a schematic representation of a portion of the system of FIG. 9; 15 - FIG. 11 is a sequence diagram according to an embodiment of the present invention; FIG. 12 A-C are flow charts of process according to embodiments of the present invention; A first embodiment (Fig. 1,2) relates to a subsystem for displaying user interfaces of a user session that is to be displayed on a user's screen. In a global sense, applications operating on a so-called frontend server 4 according to the present invention are made suitable for display via a so-called thin client 3 or client device 3. Such a thin client is suitable for displaying a signal in a format of, for example, a relatively simple video codec such as MPEG-2, H.264, Windows media / VC-1 and the like. The application running on the front-end server 4 generally uses data from a back-end server 5 that typically comprises a combination of data files and 11 business logic. This can be a known internet application. The present invention is eminently suitable for displaying graphic applications such as internet applications on, for example, a TV screen. Although it is preferred that such a TV screen has relatively high resolution as is known with TFT screens, LCD screens or plasma screens, it is of course possible to use a TV screen with a relatively old display technique such as CRT.

10 Vanaf de backendserver 5 worden bijvoorbeeld XML10 From the backend server 5, for example, XML

items en beeldbestanden of multimediale beeldbestanden via de communicatieverbinding elk overgebracht naar de fron-tendapplicatieserver. Hiertoe kan de frontendapplicatie-server verzoeken versturen via de verbinding 4 in de rich-15 ting van de backendserver. De frontendapplicatieserver functioneert bij voorkeur op basis van verzoeken die deze ontvangt via de verbinding 7 die afkomstig zijn van de renderer 2 volgens de onderhavige uitvinding. In reactie op deze verzoeken verschaft de contentapplicatie bijvoor-20 beeld XML beschrijvingen, stijlbestanden en de media- assets. De werking van de renderer 2 volgens de onderhavige uitvinding zal in groter detail in het navolgende worden besproken.items and image files or multimedia image files each transmitted to the front-end application server via the communication link. To this end, the front-end application server can send requests via the connection 4 in the direction of the back-end server. The front-end application server preferably functions on the basis of requests it receives via the connection 7 from the renderer 2 according to the present invention. In response to these requests, the content application, for example, provides XML descriptions, style files, and media assets. The operation of the renderer 2 according to the present invention will be discussed in greater detail below.

De handelingen van de renderer worden uitgevoerd 25 op basis van aanvragen 9 op basis van gebruikerswensen die de gebruiker bijvoorbeeld te kennen geeft door middel van het selecteren van elementen van de grafische gebruikersinterface zoals menuelementen of keuze-elementen door middel van handelingen met een afstandsbediening. Een ver-30 gelijkingsvoorbeeld hiervan is dat een gebruiker dergelijke handelingen uitvoert naar analogie van het bedienen van menustructuur van bijvoorbeeld een dvd-speler of een normale webapplicatie. In reactie op de verzoeken 9 verschaft 12 de renderer gecodeerde audio- en/of videobeelden in het vooraf bepaalde codecformaat zoals MPEG-2 of H.264. De ontvangen beelden worden door de cliëntinrichting 3 geschikt gemaakt voor weergave op het beeldscherm zoals de 5 genoemde TV via het signaal 12.The operations of the renderer are performed on the basis of requests 9 on the basis of user wishes which the user indicates for example by selecting elements of the graphical user interface such as menu elements or selection elements by means of operations with a remote control. A comparative example of this is that a user performs such operations analogously to operating menu structure of, for example, a DVD player or a normal web application. In response to the requests 9, the renderer 12 provides encoded audio and / or video images in the predetermined codec format such as MPEG-2 or H.264. The received images are made suitable by the client device 3 for display on the screen such as the said TV via the signal 12.

In figuur 3 is op schematische wijze een dergelijke cliëntinrichting 3 getoond. Het vanaf de renderer ontvangen signaal, dat op een in het navolgende nader te beschrijven wijze is gemultiplext, wordt ontvangen en of ge-10 demultiplext in de ontvangstmodule 44. Vervolgens wordt het signaal gesplitst aangeleverd naar de audiodecodeer-eenheid 43 in de videodecodeereenheid 45. In deze videode-codeereenheid 45 zijn op schematische wijze twee referen-tiebeeldbuffers getoond zoals deze bij MPEG-2 worden toe-15 gepast. In bijvoorbeeld het geval van een codec als H.264 zijn zelfs 16 referentiebeelden mogelijk. Afhankelijk van de in de cliëntinrichting aanwezige decodeercodecs is het mogelijk in meer of mindere mate geavanceerde bewerkingen zoals beeldovergangen toe te passen volgens de onderhavige 20 uitvinding, hetgeen in onder meer in groter detail wordt beschreven aan de hand van Fig. 8.Figure 3 shows such a client device 3 schematically. The signal received from the renderer, which has been multiplexed in a manner to be described below, is received and / or demultiplexed in the receiving module 44. The signal is then supplied split to the audio decoder 43 in the video decoder 45. In this video coding unit 45 two reference image buffers are shown schematically as applied to MPEG-2. For example, in the case of a codec such as H.264, even 16 reference images are possible. Depending on the decoding codecs present in the client device, it is possible to use advanced operations such as image transitions to a greater or lesser extent, which is described in greater detail with reference to Figs. 8.

In het navolgende wordt de renderer 2 in groter detail beschreven aan de hand van figuur 2. Zoals in het voorgaande is beschreven functioneert de module voor de 25 toepassingslogica 28 op basis van de instructies 9 die worden verkregen van de eindgebruiker. Deze instructies worden vanaf een inrichting van de eindgebruiker via één of andere netwerkfunctionaliteit verzonden naar de module 28. Hiervoor is elke denkbare netwerkfunctionaliteit ge-30 schikt zoals een internetverbinding op basis van het TCP/IP protocol, een verbinding op basis van XRT2 en dergelijke. Verder kunnen hiervoor bedrade en draadloze verbindingen worden toegepast voor het verschaffen van de fy- 13 sieke verbinding. Na ontvangst interpreteert de module 28, omvattende de applicatielogica, de instructies van de gebruiker. Op basis van bijvoorbeeld een XML paginabeschrij-ving, de stijldefinities en de instructies van de gebrui-5 ker kunnen verversingen van het beeldscherm worden gedefinieerd. Het kan hierbij gaan om incrementele verversingen zoals cursor updates dan wel volledige schermverversingen.In the following, the renderer 2 is described in greater detail with reference to figure 2. As described above, the application logic module 28 functions on the basis of the instructions 9 obtained from the end user. These instructions are sent from a device of the end user via one or other network functionality to the module 28. For this, every conceivable network functionality such as an internet connection based on the TCP / IP protocol, a connection based on XRT2 and the like is suitable. Furthermore, wired and wireless connections can be used for providing the physical connection. Upon receipt, the module 28, including the application logic, interprets the user's instructions. Refreshments of the screen can be defined on the basis of, for example, an XML page description, the style definitions and the instructions of the user. This may involve incremental refreshes such as cursor updates or full screen refreshes.

Op basis van de gebruikerswensen van de instructies 9 kan de module 28 bepalen hoe de actualisering van 10 de beeldschermgegevens dient te worden uitgevoerd. Enerzijds is het mogelijk door middel van verzoeken 6 aan de frontendserver gegevens op te vragen met betrekking tot nieuwe XML paginabeschrijvingen en stijldefinities 7a en anderzijds media-assets zoals beelden, videogegevens, ani-15 maties, audiogegevens, lettertypes en dergelijke 7b op te vragen. Het is echter evenzeer mogelijk dat de module 28 op basis van gegevens die deze uitwisselt met de renderer 21, omvattende de fragmentcodeerder 22, de fragmentcache 23 en de fragmentsamensteller 24, die in het navolgende in 20 groter detail zal worden beschreven, schermverversingen en/of instructies daarvoor definieert. Indien gebruikt gemaakt wordt van nieuw toegevoerde gegevens 7a en 7b worden deze respectievelijk verder bewerkt in de voorbereidings-module 25 en 26 voor het respectievelijk vervaardigen van 25 pixels en texturemappings voor beeld- en videogegevens en de module 27 voor het verwerken van audiogegevens. De module 25 wordt aangeduid als een module voor rendering, scaling en/of blending voor het definiëren van gegevens met betrekking tot pixeldata. De module 26 is bedoeld voor 30 het creëren van texturemapping voor bijvoorbeeld over- gangseffecten voor het gehele scherm of een gedeelte van het scherm. De resulterende pixels respectievelijk texturemappings zijn invoer voor de module 21. De in de module 14 27 bewerkte audiogegevens worden uitgevoerd in de vorm van audiosamples 32 die worden gecodeerd in de audiocodeerder 35 en worden opgeslagen in de audiocache 36 voor uitvoer van deze gegevens naar de multiplexer en verzender 33.On the basis of the user wishes of the instructions 9, the module 28 can determine how the updating of the screen data is to be carried out. On the one hand, it is possible to request data on new XML page descriptions and style definitions 7a by means of requests 6 and on the other hand to request media assets such as images, video data, animations, audio data, fonts and the like 7b. However, it is equally possible that the module 28, based on data it exchanges with the renderer 21, comprising the fragment encoder 22, the fragment cache 23 and the fragment composer 24, which will be described in greater detail below, screen refreshes and / or defines instructions for this. If use is made of newly supplied data 7a and 7b, these are further processed respectively in the preparation modules 25 and 26 for producing 25 pixels and textural mappings for image and video data and the module 27 for processing audio data, respectively. The module 25 is referred to as a module for rendering, scaling and / or blending for defining data with respect to pixel data. The module 26 is intended for creating textural mapping for, for example, transition effects for the entire screen or a portion of the screen. The resulting pixels or texture mappings are input for the module 21. The audio data processed in the module 14 27 is output in the form of audio samples 32 which are encoded in the audio encoder 35 and are stored in the audio cache 36 for output of this data to the multiplexer and shipper 33.

5 De module 21 omvat drie belangrijke elementen vol gens voorkeursuitvoeringsvormen volgens de onderhavige uitvinding, respectievelijk de fragmentencodeerder 22, de fragmentencache 23 en de fragmentensamensteller (compositor) 24. Op basis van gegevens van de module 28 en de mo-10 dules 25 en 26 vervaardigt de fragmentencodeerder 22 gecodeerde fragmenten. Een gecodeerd fragment beschrijft beeldschermverversingen die worden opgeslagen in een formaat van een videocodec zoals MPEG-2 of H.264. Een gecodeerd fragment wordt gecodeerd op basis van een beschrij-15 ving van beeldschermverversingen van een gebruikerstoepas-sing. Een dergelijk gecodeerd fragment omvat bij voorkeur één of enkele beelden. Langere sequenties van beelden zijn eveneens ondersteunbaar. Beelden in een gecodeerd fragment kunnen één of meer verschillende slices omvatten. Slices 20 zijn in standaarden van codecs gedefinieerd en hebben op zichzelf bekende definitieparameters afhankelijk van de codec. Gecodeerde fragmenten kunnen beelden omvatten die kleiner zijn dan de doelbeeldschermgrootte. Gecodeerde fragmentslices kunnen al dan niet aanwezig zijn op elke 25 verticale lijn en kunnen al dan niet gehele horizontale lijnen omvatten. Een aantal verschillende slices kan bestaan op één enkele horizontale lijn indien dit is toegestaan door de parameters van de codec.The module 21 comprises three important elements according to preferred embodiments according to the present invention, respectively the fragment encoder 22, the fragment cache 23 and the fragment composer (compositor) 24. Manufactured on the basis of data from the module 28 and the modules 25 and 26 the fragment coder 22 coded fragments. An encoded fragment describes screen updates that are stored in a video codec format such as MPEG-2 or H.264. A coded fragment is coded based on a description of screen refreshes of a user application. Such an encoded fragment preferably comprises one or a few images. Longer sequences of images are also supported. Images in an encoded fragment can comprise one or more different slices. Slices 20 are defined in codec standards and have per se known definition parameters depending on the codec. Coded fragments can include images that are smaller than the target display size. Coded fragment slices may or may not be present on any vertical line and may or may not include entire horizontal lines. A number of different slices can exist on a single horizontal line if allowed by the codec parameters.

Volgens de onderhavige uitvinding kan het boven-30 staande leiden tot een groter aantal slices dan bij bekend gebruik van een codec wordt toegepast aangezien een bekende videocodeerder het aantal slices zal minimaliseren ten einde maximale coderingsefficiëntie te verkrijgen. Een 15 voordeel hiervan is dat door middel van het coderen van fragmenten, zodanig dat op efficiënte wijze wordt aangesloten bij vereisten van de toegepaste codec, de fragment-samensteller volgens de onderhavige uitvinding op zeer ef-5 ficiënte wijze de gecodeerde fragmenten kan combineren tot beelden of delen daarvan aangezien deze gehele slices kan vervangen of verwijderen maar dit niet mogelijk is met delen van slices. Een voorbeeld hiervan is dat bijvoorbeeld bij de toepassing van een MPEGcodering rekening kan worden 10 gehouden met de dimensies van macroblokken bij het vervaardigen van de gecodeerde fragmenten. Hierdoor kan de hoeveelheid benodigde rekenkracht voor het vervaardigen van de gecodeerde fragmenten en/of het samenstellen van uiteindelijk uit te voeren beeld door de fragmentsamen-15 steller 24 in grote mate worden beperkt.According to the present invention, the above can lead to a larger number of slices than is used with known use of a codec since a known video encoder will minimize the number of slices in order to achieve maximum coding efficiency. An advantage hereof is that by coding fragments, such that the requirements of the codec used are efficiently matched, the fragment composer according to the present invention can very efficiently combine the coded fragments into images or parts thereof since it can replace or delete entire slices but this is not possible with parts of slices. An example of this is that, for example, when applying an MPEG coding, the dimensions of macroblocks can be taken into account when manufacturing the coded fragments. As a result, the amount of computing power required for manufacturing the coded fragments and / or composing the final image to be output by the fragment composer 24 can be greatly limited.

Verdere voordelen worden behaald doordat gecodeerde fragmenten zodanig zijn gecodeerd dat deze kunnen verwijzen naar pixels uit de referentiebeeldbuffers in de cliëntinrichting zelfs indien de pixels in deze buffer 20 niet zijn ingesteld door middel van dit gecodeerde fragment. Hierbij worden de referentiebeeldbuffers op effectieve wijze toegepast als texturemap. Beeldsoorten (picture types) zijn in de inrichting flexibel aangezien en geen noodzaak is tot aanpassing aan een GOP structuur. Door de-25 ze flexibiliteit wordt het mogelijk dat gecodeerde fragmenten op effectieve wijze koppelbaar zijn voor het sequentieel functioneren op pixels in de referentiebuffers voor het verkrijgen van gewenste effecten op het beeldscherm.Further advantages are achieved in that coded fragments are coded such that they can refer to pixels from the reference image buffers in the client device even if the pixels in this buffer are not set by means of this coded fragment. The reference image buffers are used effectively as a texture folder. Image types (picture types) are flexible in the device, and there is no need to adapt to a GOP structure. This flexibility makes it possible for coded fragments to be effectively linkable to function sequentially on pixels in the reference buffers to achieve desired effects on the display.

30 De fragmentcache 23 dient voor het opslaan van de gecodeerde fragmenten voor hergebruik daarvan. Het heeft de voorkeur in het cachegeheugen gecodeerde fragmenten op te slaan die relatief veel worden herhaald binnen een ge- 16 bruikersapplicatie of bijvoorbeeld in veel verschillende sessies van eenzelfde applicatie. Het efficiënte hergebruik van de veel voorkomende gecodeerde fragmenten uit de fragmentcache reduceert in belangrijke mate de coderings-5 tijd voor de verwerkingseenheden van de server. Naast deze reductie in de coderingsverwerkingstijd wordt doordat externe duplicaatrendering van de pixels tevens wordt voorkomen een externe besparing eveneens mogelijk.The fragment cache 23 serves for storing the coded fragments for reuse thereof. It is preferable to store cached fragments that are repeated relatively frequently within a user application or, for example, in many different sessions of the same application. The efficient reuse of the common coded fragments from the fragment cache significantly reduces the coding time for the processing units of the server. In addition to this reduction in coding processing time, external duplicate rendering of the pixels also prevents an external saving.

De fragmentsamensteller 24 maakt het mogelijk dat 10 een aantal gecodeerde fragmenten met een erg hoge efficiëntie kan worden gecombineerd tot een videostroom volgens het vooraf bepaalde formaat. Het algoritme daarvoor is gebaseerd op de gebruikmaking van het alreeds genoemde concept van slices dat wordt toegepast in een veelheid van 15 videocodecs zoals MPEG-2 en H.264. Slices zijn hierbij gedefinieerd als delen van gecodeerde beelden die op onafhankelijke wijze kunnen worden gedecodeerd. Het doel van slices volgens de stand van de techniek is het verkrijgen van een foutenresistentie. Volgens de onderhavige uitvin-20 ding past de fragmentsamensteller 24 de slices toe voor het op efficiënte wijze combineren van de slices tot gecodeerde fragmenten die onafhankelijk zijn gecodeerd.The fragment composer 24 allows a number of coded fragments to be combined with a very high efficiency into a video stream in the predetermined format. The algorithm for this is based on the use of the already mentioned concept of slices that is applied in a multitude of 15 video codecs such as MPEG-2 and H.264. Slices are defined here as parts of coded images that can be decoded independently. The purpose of prior art slices is to obtain an error resistance. According to the present invention, the fragment composer 24 uses the slices to efficiently combine the slices into encoded fragments that are independently encoded.

De fragmentcache 23 maakt het mogelijk dat de gecodeerde fragmenten met een hoge efficiëntie kunnen worden 25 hergebruikt en hergecombineerd voor het vervaardigen van een gepersonaliseerde videostroom voor het weergeven van de gebruikersinterface. Hierbij wordt een zeer geringe hoeveelheid rekenkracht gebruikt vanwege de geboden efficiëntie. Hierbij behoeft bijvoorbeeld geen kopie van de 30 toestanden van de referentiebeeldbuffers in de decodeerde in stand te worden gehouden zoals een codeerder volgens de stand van de techniek nodig heeft hetgeen grote hoeveelhe- 17 den geheugen en rekenkracht voor de adressering daarvan bespaard.The fragment cache 23 allows the encoded fragments to be reused and recombined with high efficiency to produce a personalized video stream for displaying the user interface. A very small amount of computing power is used because of the efficiency offered. Here, for example, no copy of the states of the reference image buffers in the decoded need be maintained as a coder according to the state of the art needs, which saves large amounts of memory and computing power for addressing them.

Door de in het voorgaande verschillende genoemde besparingen kunnen grote hoeveelheden videostromen worden 5 gegenereerd met een relatief beperkte verwerkingskracht die bijvoorbeeld aanwezig is op een geschikte server. Wanneer beeldelementen die in de cache worden opgeslagen relatief vaak kunnen worden hergebruikt, zoals bij het verspreiden van een gebruikersinterface van een applicatie 10 naar vele gebruikers het geval zal zijn, worden dergelijke besparingen in grote mate bereikt.Due to the savings mentioned above, large amounts of video streams can be generated with a relatively limited processing power that is present on a suitable server, for example. When picture elements stored in the cache can be reused relatively often, such as will be the case when distributing a user interface of an application 10 to many users, such savings are achieved to a large extent.

In figuur 4 is een voorkeursuitvoeringsvorm van een werkwijze voor het coderen van fragmenten weergegeven in een stroomschema. Invoeren in de fragmentcodeerder 22 15 omvatten sequenties van een of meer beelden die elk een beeldvormbeschrijving, pixelwaarden en een texturemapping-veld omvatten. Texturemappingvelden voor invoer in de fragmentcodeerder beschrijven op welke wijze beeldpunten of pixels in de referentiebeelden worden gebruikt volgens 20 de onderhavige uitvinding. Per pixel of blok van pixels beschrijft het texturemappingveld of pixels van de textu-remap worden hergebruikt en indien dit het geval is of de vectoren die voor deze pixels worden gebruikt worden opgeteld of afgetrokken.Figure 4 shows a preferred embodiment of a method for coding fragments in a flow chart. Inputs in the fragment encoder 22 include sequences of one or more images, each comprising an image shape description, pixel values, and a texture mapping field. Texture mapping fields for entry into the fragment encoder describe how pixels or pixels in the reference images are used according to the present invention. For each pixel or block of pixels, the texture mapping field describes whether pixels of the textu remap are reused and, if so, whether the vectors used for these pixels are added or subtracted.

25 In de codeerder worden gecodeerde fragmenten ver vaardigd met coderingen voor het op efficiënte wijze combineren van deze gecodeerde fragmenten met andere gecodeerde fragmenten. Hiertoe zijn extensies aanwezig in een codeerder volgens de onderhavige uitvinding ten opzichte 30 van bestaande codeerders. Hoewel hierdoor het aantal vrijheidsgraden voor de codeerder ten opzichte van een bekende codeerder beperkt is biedt de codeerder volgens de onderhavige uitvinding sterke voordelen door bijvoorbeeld het 18 toepassen van constante parameters voor alle gecodeerde fragmenten, zoals in de Quantisatiematrix onder toepassing van MPEG-2.In the encoder, encoded fragments are made with encodings for efficiently combining these encoded fragments with other encoded fragments. For this purpose, extensions are present in an encoder according to the present invention relative to existing encoders. Although the number of degrees of freedom for the encoder is hereby limited with respect to a known encoder, the encoder according to the present invention offers strong advantages by, for example, applying constant parameters for all encoded fragments, such as in the Quantization matrix using MPEG-2.

Door het op zorgvuldige wijze kiezen van gecodeer-5 de parameters op beeldniveau, zoals beeldvolgorde, beeld-type, bewegingsvectorbereiken, frame/veld en slice structuur kunnen deze compatibel zijn met gecodeerde fragmenten die bedoeld zijn om in een later stadium samen te voegen. In hoofdzaak wordt de slicestructuur gedefinieerd door de 10 beeldvorm en deze kan derhalve verschillend zijn ten opzichte van een slicestructuur volgens de stand van de techniek. Een voorbeeld hiervan is dat niet het gehele beeld van een beeld behoeft te zijn afgedekt met een slice .By carefully selecting coding parameters at the image level, such as image order, image type, motion vector ranges, frame / field and slice structure, they can be compatible with coded fragments intended to merge at a later stage. The slice structure is essentially defined by the image shape and can therefore be different from a slice structure according to the prior art. An example of this is that the entire image of an image need not be covered with a slice.

15 Wanneer door de applicatielogica 28 informatie over beelden wordt aangevoerd aan de fragmentcodeerder 22 kan hierbij worden aangegeven welke beelden bedoeld zijn voor latere samenvoeging daarvan of bijvoorbeeld bedoeld zijn voor gebruik bij elkaar in de tijd gezien voor het op 20 basis hiervan faciliteren van het kiezen van geschikte co-deringsparameters. Op alternatieve wijze kunnen door de applicatielogica globale parameters worden ingesteld voor de sessie of voor een aantal soortgelijke sessies. In een verdere uitvoering is voorzien dat de fragmentcodeerder 25 een hoeveelheid toestanden, omvattende coderingsparame- ters, voor eerder gecodeerde fragmenten in stand houdt en vervolgens parameters bepaald in relatie tot deze toestanden. In een verdere uitvoering wordt de conflictresolutie opgelost in de fragmentsamensteller zonder aansturing op 30 basis van parameters afkomstig van de applicatielogica.When information about images is supplied by the application logic 28 to the fragment coder 22, it can be indicated here which images are intended for later assembly thereof or, for example, are intended for use together viewed in time for facilitating the selection of these on the basis thereof. suitable coding parameters. Alternatively, global application parameters can be set by the application logic for the session or for a number of similar sessions. In a further embodiment, it is provided that the fragment encoder 25 maintains a plurality of states, including encoding parameters, for previously encoded fragments, and subsequently determines parameters in relation to these states. In a further embodiment, the conflict resolution is resolved in the fragment composer without control based on parameters from the application logic.

Deze conflictresolutie wordt nader beschreven aan de hand van de beschrijving van de fragmentsamensteller en de werking daarvan.This conflict resolution is further described on the basis of the description of the fragment composer and its operation.

1919

De werkwijze start in stap 50. In stap 51 worden pixels en texturemappings ingelezen uit de modules 25 en 26 door de fragmentcodeerder 22. Een dergelijke texturemapping of texturemappingveld functioneert als een defini-5 tie voor beeldvormbeschrijving, pixelwaarden en hoe de pixels in de referentiebeelden dienen te worden gebruikt. In een pixel of blok van pixels (zoals een macroblok) beschrijft het texturemappingveld of pixels worden hergebruikt uit de texturemap en indien dit het geval is even-10 tuele vectoren die kunnen worden gebruikt voor deze pixels en eventueel of pixelwaarden dienen te worden opgeteld of afgetrokken. Hierdoor wordt het mogelijk om 2D bewegingen van de blokken van texturepixels te realiseren. Aangezien fragmentbeelden die worden gedecodeerd eveneens kunnen 15 worden opgenomen in de referentiebeelden kan het proces iteratief zijn hetgeen het mogelijk maakt bewerkingen uit te voeren op texturemappings op dezelfde pixels in achtereenvolgende beelden.The method starts in step 50. In step 51, pixels and texture mapping are read in from modules 25 and 26 by fragment encoder 22. Such a textural mapping or texturing mapping field functions as a definition for image shape description, pixel values, and how the pixels serve in the reference images to be used. In a pixel or block of pixels (such as a macroblock) the texture mapping field describes whether pixels are reused from the texturemap and if this is the case, any vectors that can be used for these pixels and possibly whether pixel values should be added or subtracted . This makes it possible to realize 2D movements of the blocks of texture pixels. Since fragment images that are decoded can also be included in the reference images, the process can be iterative, which makes it possible to perform operations on texture mappings on the same pixels in successive images.

In stap 52 wordt de beeldherordening, het beeldty-20 pe en de parameters ingesteld. De beeldvolgorde en beeld/slicetypes evenals macrobloktypen worden afgeleid uit het texturemappingveld. De beeldvolgorde wordt bepaald door de volgorde waarin texturen en pixels dienen te worden gebruikt. In het geval dat macroblokken texturepixels 25 hergebruiken worden bij voorkeur de macroblokken INTER gecodeerd en worden de bewegingsfactoren bepaald door het texturemappingveld. Indien macroblokken geen texturepixels hergebruiken en worden bepaald door de pixelwaarden die als invoer worden verschaft wordt het microblok INTRA ge-30 codeerd.In step 52, the image reordering, the image type, and the parameters are set. The image order and image / slice types as well as macro block types are derived from the texture mapping field. The image order is determined by the order in which textures and pixels are to be used. In the case that macroblocks reuse texture pixels 25, the macroblocks are preferably coded INTER and the motion factors are determined by the texture mapping field. If macroblocks do not reuse texture pixels and are determined by the pixel values provided as input, the micro block INTRA is encoded.

In stap 53 worden de referentiebeelden en beeldvorm en slicestructuur ingesteld. Hierbij wordt op de beschreven wijze niet het aantal slices geminimaliseerd zo- 20 als bekend is uit de stand van de techniek maar worden fragmenten gecodeerd met het oog op het optimaliseren van het coderen van slices onder afhankelijkheid van de weer te geven beeldelementen in de licht van de codec. In het 5 geval van codecs die geen nieuwe slice per horizontale ma-crobloklijn vereisen, zoals bijvoorbeeld H.264, is het van belang dat de codeerder op geschikte wijze functioneert met betrekking tot fragmenten. Indien bijvoorbeeld andere fragmenten samen op een macrobloklijn staan ter linker of 10 rechterzijde van een vooraf bepaald fragment wordt dit gebaseerd op de gecodeerde meta-informatie. Bij bijvoorbeeld MPEG-2 is een nieuwe slice per horizontale macrobloklijn vereist.In step 53, the reference images and image shape and slice structure are set. Hereby, in the manner described, the number of slices is not minimized as is known from the prior art, but fragments are coded with a view to optimizing the coding of slices depending on the pixels to be displayed in the light of the codec. In the case of codecs that do not require a new slice per horizontal macro block line, such as, for example, H.264, it is important that the encoder function appropriately with respect to fragments. For example, if other fragments are together on a macroblock line on the left or right side of a predetermined fragment, this is based on the encoded meta information. For example, MPEG-2 requires a new slice per horizontal macroblock line.

In de fragmentcompositor 24 die in het navolgende 15 in groter detail zal worden beschreven kunnen gehele slices worden vervangen of verworpen uit een beeldraster maar niet delen daarvan. In de te coderen meta-informatie wordt met dergelijke aanvullingen of vervangingen in de frag-mentcompositor 24 rekening gehouden indien additionele 20 slices dienen te worden geplaatst. Een dergelijke werkwijze is behulpzaam bij het invullen van bepaalde gebieden van een achtergrondbeeld door middel van andere fragmenten. Hiermee kunnen ook niet rechthoekig gevormde beelden worden toegepast door op veel slices te gebruiken wanneer 25 in een beeldraster er geen daadwerkelijke macroblokken van beeldinformatie zijn voorzien. Dergelijke niet rechthoekige beelden of delen daarvan ontstaan wanneer beeldinformatie over een achtergrond heen wordt geprojecteerd.In the fragment composer 24 which will be described in greater detail below, whole slices can be replaced or rejected from an image frame but not parts thereof. In the meta-information to be encoded, such additions or replacements in the fragment composer 24 are taken into account if additional 20 slices are to be placed. Such a method is helpful in filling in certain areas of a background image by means of other fragments. With this, non-rectangular shaped images can also be applied by using on many slices when in an image frame no actual macroblocks are provided with image information. Such non-rectangular images or parts thereof arise when image information is projected over a background.

In stap 54 wordt door de codeerder van elke macro-30 blok gecontroleerd of het type macroblok en of bewegings-vectoren worden voorgeschreven door het proces van de texturemapping. Met andere woorden wordt er gecheckt wat het antwoord is op de vraag 'texture mapped?'. Indien dit het 21 geval is worden het macrobloktype en bewegingsvectoren afgeleid op basis van de texturemapping vectoren. Indien dit niet het geval is kan een algoritme voor het macrobloktype en de bewegingsschatting op soortgelijke wijze worden uit-5 gevoerd als bij een bekende codeerder. Het definiëren van het macrobloktype en de schatting van de beweging geschiedt in stap 56.In step 54, the coder of each macroblock checks whether the macroblock type and whether motion vectors are prescribed by the texture mapping process. In other words, the answer to the question 'texture mapped?' Is checked. If this is the case, the macroblock type and motion vectors are derived based on the texture mapping vectors. If this is not the case, an macroblock type and motion estimation algorithm can be performed in a similar manner to a known encoder. The definition of the macroblock type and the estimation of the motion is done in step 56.

Indien in stap 54 is bepaald dat de texturemapping is uitgevoerd, wordt in stap 55 bepaald of de pixels zijn 10 gedefinieerd. Indien dit niet het geval is worden in stap 57 op op zichzelf bekende wijze processen als bewegings-compensatie, transformatie (zoals dct in het geval Mpeg2) en quantisatie (quantisation) uitgevoerd. De instelling van de quantiser kan extern zijn ingesteld. Hierdoor wordt 15 bijvoorbeeld een hogere kwaliteit van de codering mogelijk bij synthetische tekst in vergelijking met natuurlijke beelden. Op alternatieve wijze bepaalt de codeerder een geschikte quantiserinstelling gebaseerd op de toe te passen bitrate voor het gecodeerde fragment voor de weergave 20 van de gebruikersinterface waarvoor de werkwijze wordt uitgevoerd.If it is determined in step 54 that the texture mapping has been carried out, it is determined in step 55 whether the pixels have been defined. If this is not the case, in step 57 processes such as motion compensation, transformation (as in the case of Mpeg2) and quantization are performed in a manner known per se. The quantizer setting can be set externally. As a result, for example, a higher quality of the coding is possible with synthetic text in comparison with natural images. Alternatively, the encoder determines a suitable quantizer setting based on the bit rate to be applied for the encoded fragment for displaying the user interface for which the method is performed.

In stap 58 wordt de variabele lengtecodering van de uitvoer bepaald. Hierbij worden de koptitels (headers) van de slices, parameters van de macroblokken en de blok-25 coëfficiënten op voor de toegepaste codec geschikte wijze VLC-gecodeerd en worden deze uitgevoerd. Deze stappen worden voor elk macroblok van de slice herhaald ten behoeve waarvan wordt teruggekeerd naar stap 54 indien in stap 59 is bepaald dat er nog een macroblok of slice moet worden 30 gecodeerd.In step 58, the variable length coding of the output is determined. Hereby, the header titles of the slices, parameters of the macroblocks and the block coefficients are VLC-coded in a manner suitable for the codec used and are executed. These steps are repeated for each macroblock of the slice for which it is returned to step 54 if it is determined in step 59 that another macroblock or slice is to be coded.

In stap 60 wordt bepaald of het uitvoeren van stap 61 nodig is voor het uitvoeren van de texturemaps. Indien dit voor de texturemaps noodzakelijk is worden in deze 22 stap 61 referentiebeelden geactualiseerd door middel van inverse quantisatie en/of bewegingscompensatie en optionele naverwerking in de lus. Deze nieuwe referentiebeelden worden toegepast voor volgende beelden in het fragment.In step 60, it is determined whether the execution of step 61 is necessary for the execution of the texture maps. If this is necessary for the texturemaps, reference images are updated in this step 61 by means of inverse quantization and / or motion compensation and optional post-processing in the loop. These new reference images are applied to subsequent images in the clip.

5 Vervolgens wordt in stap 62 bepaald of er nog een volgend beeld moet worden gecodeerd in welk geval er wordt geretourneerd naar stap 52. Indien het laatste beeld INTER was gecodeerd, waarbij geldt dat een laatst ontvangen INTER gecodeerd beeld vanwege het referentiekarakter daarvan 10 niet wordt getoond op het beeldscherm van de gebruiker, wordt aan het eind van de werkwijze voor het bewerken van beelden voor het gecodeerde fragment een additioneel 'geen veranderingen' beeld gegenereerd. De werkwijze eindigt in stap 63.Next, it is determined in step 62 whether a further image is to be coded, in which case it is returned to step 52. If the last image was INTER coded, it holds that a last received INTER coded image is not due to its reference character. shown on the user's display, at the end of the image processing method for the encoded fragment, an additional "no changes" image is generated. The method ends in step 63.

15 In Fig. 5 is een werkwijze beschreven voor een uitvoeringsvorm van de werking van de fragmentcache 23 voor wat betreft het toevoegen van fragmenten aan de cache. Deze cache 23 functioneert in hoofdzaak voor het opslaan van gecodeerde fragmenten en het distribueren daar-20 van over de verschillende gebruikersinterfacesessies die worden gegenereerd door de fragmentsamensteller 24 zoals in het navolgende zal worden beschreven. Een tweede functie van de fragmentcache is het distribueren van fragmenten van live streams die niet worden opgeslagen in de 25 fragmentcache als deze niet worden hergebruikt maar die wel parallel kunnen worden gebruikt in sessies op het zelfde moment. Hierbij functioneert de fragmentcache voor het doorgeven en vermenigvuldigen van de beeldinformatie. Hierbij is het van belang dat een slim management wordt 30 uitgevoerd met betrekking tot de beschikbare systeembron-nen voor het maximaliseren van de efficiëntie. Het geheugen van de fragmentcache omvat bij voorkeur grote hoeveel- 23 heden RAM geheugen voor snelle geheugentoegang, bij voorkeur aangevuld met schijfgeheugens.FIG. 5, a method is described for an embodiment of the operation of the fragment cache 23 as regards adding fragments to the cache. This cache 23 functions primarily for storing encoded fragments and distributing them over the different user interface sessions generated by the fragment composer 24 as will be described below. A second function of the fragment cache is to distribute fragments of live streams that are not stored in the fragment cache if they are not reused, but that can be used in parallel in sessions at the same time. The fragment cache functions for transmitting and multiplying the image information. It is important here that smart management is performed with regard to the available system resources for maximizing efficiency. The fragment cache memory preferably comprises large amounts of RAM for fast memory access, preferably supplemented with disk memories.

Voor het identificeren van gecodeerde fragmenten wordt een zogenoemde cachetag toegepast. De cachetag is 5 bij voorkeur uniek voor elk afzonderlijke gecodeerd fragment en omvat een lange beschrijving van het gecodeerde fragment. Voor deze uniciteit is een relatief lange tag gewenst terwijl voor de opslag een korte tag gewenst is. Hiervoor wordt de tag of een deel daarvan gehashed door de 10 fragmentcache in combinatie met een opzoektabel. Naast een unieke beschrijving van beeldinformatie en/of pixels van een gecodeerd fragment kan een tag voorts speciaal gecodeerde parameters omvatten die in een werkwijze volgens de onderhavige uitvinding worden toegepast.A so-called cache tag is used to identify coded fragments. The cache tag is preferably unique to each individual coded fragment and includes a long description of the coded fragment. A relatively long tag is required for this uniqueness, while a short tag is required for storage. For this, the tag or part thereof is hashed by the fragment cache in combination with a look-up table. In addition to a unique description of image information and / or pixels of an encoded fragment, a tag may further comprise specially encoded parameters that are used in a method according to the present invention.

15 Indien een gecodeerd fragment dat aan de invoer van de codeerder 22 wordt aangeboden al is opgeslagen in de fragment cache behoeft dit fragment niet opnieuw te worden gecodeerd en kan dit in plaats daarvan door de fragment samensteller worden uitgelezen uit de cache bij 20 het samenstellen van de uiteindelijke videostroom.If a coded fragment presented to the input of the encoder 22 has already been stored in the fragment cache, this fragment does not need to be re-coded and can instead be read out of the cache by the fragment compiler when compiling the final video stream.

Indien de gecodeerde fragmenten niet zijn opgeslagen in de cache is opslag daarvan in de cache 23 na coderen daarvan mogelijk. Of een gecodeerd fragment daadwerkelijk door de cache zal worden opgenomen hangt af van de 25 hoeveelheid vrij geheugen in de cache en de waarschijnlijkheid dat het fragment zal worden hergebruikt of de waarschijnlijkheid van de frequentie daarvan. Hiertoe wordt een rangschikking gemaakt waarbij voor elk nieuw fragment wordt bepaald waar deze in de rangschikking be-30 hoort te worden opgenomen.If the coded fragments are not stored in the cache, their storage in the cache 23 after coding thereof is possible. Whether an encrypted fragment will actually be included in the cache depends on the amount of free memory in the cache and the probability that the fragment will be reused or the probability of its frequency. For this purpose an arrangement is made in which it is determined for each new fragment where it should be included in the arrangement.

De werkwijze begint in stap 64. In stap 65 wordt een cachetag voor een nieuwe invoer teruggehaald. Vervolgens wordt in stap 66 de tag gehasht en opgezocht. Indien 24 deze aanwezig is in de cache wordt het fragment en de bijbehorende meta-informatie teruggehaald in stap 67. Indien in stap 66 blijkt dat het fragment al is opgeslagen wordt de werkwijze vervolgd in stap 71 en beëindigd in stap 72.The method starts in step 64. In step 65, a cache tag for a new entry is retrieved. The tag is then hashed and looked up in step 66. If it is present in the cache, the fragment and the associated meta-information are retrieved in step 67. If it appears in step 66 that the fragment has already been stored, the method is continued in step 71 and terminated in step 72.

5 In stap 68 wordt bepaald of er voldoende geheugenruimte beschikbaar is voor het fragment of een fragment met de bijpassende rangschikking (ranking) bijvoorbeeld op basis van frequentie dan wel complexiteit van het coderen van het fragment. Indien dit niet het geval is worden in stap 10 69 fragmenten met een lagere rangschikking verwijderd uit de cache en het fragment wordt toegevoegd in stap 70 en de werkwijze beëindigd. Op alternatieve wijze wordt het nieuwe fragment niet opgenomen in de cache indien deze vol is en de rangschikking lager is dan in de cache opgenomen 15 fragmenten.In step 68, it is determined whether sufficient memory space is available for the fragment or a fragment with the corresponding arrangement (for example) on the basis of the frequency or complexity of coding the fragment. If this is not the case, in step 10 69 fragments with a lower ranking are removed from the cache and the fragment is added in step 70 and the process is terminated. Alternatively, the new fragment is not cached if it is full and the ranking is lower than cached fragments.

In Fig. 6 is een werkwijze beschreven voor een uitvoeringsvorm van de werking van de fragmentcache 23 voor wat betreft het terughalen van fragmenten uit de cache. De werkwijze begint in stap 73. In stap 74 wordt een 20 cachetag aangeleverd door de fragmentsamensteller voor het opzoeken van het fragment in het geheugen. Indien het fragment niet aanwezig is wordt in stap 78 een fout gemeld en eindigt de werkwijze in stap 79. In het andere geval wordt het fragment en de meta-informatie teruggehaald uit 25 het cachegeheugen. Vervolgens wordt in stap 77 de meta-informatie geactualiseerd in verband met het hernieuwde gebruik van het fragment.In FIG. 6, a method is described for an embodiment of the operation of the fragment cache 23 as regards the retrieval of fragments from the cache. The method starts in step 73. In step 74, a cache tag is provided by the fragment composer for looking up the fragment in the memory. If the fragment is not present, an error is reported in step 78 and the method ends in step 79. In the other case, the fragment and the meta-information are retrieved from the cache memory. Subsequently, in step 77, the meta-information is updated in connection with the renewed use of the fragment.

In figuur 7 is een werkwijze beschreven voor een uitvoeringsvorm van de werking van de fragmentsamensteller 30 24. Deze fragmentsamensteller dient voor het samenstellen van een videostroom uit de fragmenten die worden gecodeerd in de fragmentcodeerder; bij voorkeur zoveel mogelijk in de fragment cache opgeslagen fragmenten. Hiertoe omvatten 25 invoeren in de fragmentsamensteller fragmenten en positio-neringsinformatie voor de fragmenten.In Fig. 7 a method is described for an embodiment of the operation of the fragment composer 24. This fragment composer serves to compile a video stream from the fragments encoded in the fragment encoder; preferably as many fragments stored in the fragment cache as possible. To this end, entries in the fragment composer include fragments and positioning information for the fragments.

De werkwijze start in stap 80. In stap 81 worden voor de weer te geven beelden in de videostroom toepasbare 5 fragmenten en de slices die de fragmenten opmaken en gerelateerde beeldparameters in de samensteller ingevoerd. In stap 82 wordt bepaald of er actieve fragmenten en/of slices aanwezig zijn. Indien er geen actieve fragmenten aanwezig zijn wordt er een 'geen veranderingsbeeld' gegene-10 reerd door de samensteller. Hierbij wordt er gekozen uit de volgende mogelijkheden. De samensteller genereert een actueel passend beeld waarbij geen wijziging wordt gecodeerd. Op alternatieve wijze wordt geen data gegenereerd. Hierbij wordt aangenomen dat indien de buffer bij de deco-15 deerder leegloopt het beeld zal bevriezen en er geen veranderingen worden weergegeven. Hierdoor wordt gereduceerd netwerkverkeer veroorzaakt en worden reactietijden verbeterd.The method starts in step 80. In step 81 fragments applicable to the images to be displayed in the video stream and the slices that make up the fragments and related image parameters are entered in the compiler. In step 82, it is determined whether active fragments and / or slices are present. If no active fragments are present, a 'no change image' is generated by the compiler. Here is chosen from the following options. The compiler generates a current fitting image where no change is coded. Alternatively, no data is generated. It is assumed here that if the buffer at the decoder is drained, the image will freeze and no changes will be displayed. This causes reduced network traffic and improves response times.

In stap 82 wordt bepaald of er actieve fragmenten 20 zijn. Indien dit het geval is dienen beeldparameters te worden bepaald. Indien er één actief fragment is kunnen de beeldparameters hiervoor worden toegepast voor het uit te voeren beeld. Indien er meerdere fragmenten actief zijn wordt er bepaald of alle beeldparameters die zijn gebruikt 25 voor het coderen van de parameters compatible zijn. Relevante parameters hierbij zijn beeldvolgorde, beeldtype, bewegingsvectorenrange (zoals f-codes), etc.In step 82, it is determined whether there are active fragments. If this is the case, image parameters must be determined. If there is one active fragment, the image parameters for this can be applied to the image to be output. If several fragments are active, it is determined whether all image parameters used for coding the parameters are compatible. Relevant parameters here are image order, image type, motion vector range (such as f-codes), etc.

Indien derhalve in stap 82 is bepaald dat er actieve slices of fragmenten aanwezig zijn in de ingevoerde 30 informatie van stap 81 wordt vervolgens in stap 83 bepaald of er conflicterende beeldparameters voorkomen. Indien dit het geval is wordt er in stap 87 een vorm van conflictre- 26 solutie gehanteerd zoals in het navolgende in groter detail wordt beschreven.Therefore, if it is determined in step 82 that active slices or fragments are present in the input information from step 81, it is then determined in step 83 whether conflicting image parameters occur. If this is the case, a form of conflict resolution is used in step 87 as described in greater detail below.

Er bestaan verschillende uitvoeringen van werkwijzen voor het hanteren van dergelijke conflicten waaronder 5 de volgende. De fragmenten met conflicterende parameters kunnen opnieuw worden gecodeerd. Verder kunnen conflicten met betrekking tot parameters van fragmenten worden opgelost door middel van bijvoorbeeld herordening, dupliceren, laten vervallen (dropping) of vertragen daarvan. Hoewel 10 hierbij enige afwijkingen kunnen voorkomen zijn deze nauwelijks op te merken door de gebruiker vanwege bijvoorbeeld zeer korte weergavetijden van dergelijke artefacten. Een belangrijk voordeel van een dergelijke conflicthantering is dat deze slechts zeer weinig rekenkracht kost en 15 derhalve voor veel sessies naast elkaar kan worden uitgevoerd. Een praktisch voorbeeld hiervan is dat wanneer verschillende gecodeerde fragmenten verschillende P en B beeldsequenties toepassen dit kan worden opgelost door de B beelden te dupliceren of verwijderen uit een deel van de 20 gecodeerde fragmenten.There are various embodiments of methods for handling such conflicts including the following. The fragments with conflicting parameters can be recoded. Furthermore, conflicts with regard to parameters of fragments can be resolved by, for example, reordering, duplicating, dropping or delaying. Although some deviations can occur here, these can hardly be noticed by the user due to, for example, very short display times of such artifacts. An important advantage of such a conflict management is that it only requires very little computing power and can therefore be performed side by side for many sessions. A practical example of this is that when different coded fragments use different P and B image sequences, this can be solved by duplicating or removing the B images from a part of the coded fragments.

In stap 84 worden slices geherpositioneerd voor het corrigeren van X en Y posities op het beeldscherm. Een doel hiervoor is dat de grafische gebruikersinterface wordt geoptimaliseerd voor de videocodec en/of beeld-25 schermresolutie die wordt gebruikt in de sessie. Het is bijvoorbeeld van voordeel indien beeldelementen in de Tenderer zijn afgestemd op de positie van macroblokken of slices of lijnen waarop deze worden uitgelijnd. De informatie met betrekking tot de bepaalde X en Y posities wordt 30 in de koptitel van de slices geplaatst. Een herpositionering kan op deze wijze worden uitgevoerd onder gebruik van relatief weinig rekenkracht door slechts andere positione-ringsdata in de koptitel te schrijven.In step 84, slices are repositioned to correct X and Y positions on the display. An aim for this is that the graphical user interface is optimized for the video codec and / or screen resolution used in the session. For example, it is advantageous if picture elements in the Tenderer are tuned to the position of macro blocks or slices or lines to which they are aligned. The information regarding the determined X and Y positions is placed in the header of the slices. A repositioning can be performed in this way using relatively little computing power by writing only other positioning data in the header.

2727

Na het herpositioneren in stap 84 worden in stap 85 slices en/of fragmenten gesorteerd op de X en Y positie, bij voorkeur eerst in de Y positie en vervolgens in de X positie naar de volgorde waarop deze zullen worden 5 toegepast in de toegepaste codec. Het kan hierbij voorkomen dat er slices en/of fragmenten overlappen. In dit geval wordt er in stap 88 een conflictoplossing uitgevoerd. Hierbij is het mogelijk dat achtergrond slices die volledig worden overlapt door voorgrondslices worden weggela-10 ten. Indien meerdere voorgrondslices overlappen kan volgens de onderhavige uivinding een beeldsplitsingsalgoritme worden toegepast voor het verkrijgen van twee of meer beelden in plaats van één. Hierbij heeft elk beeld zijn eigen beeldparameters of sliceparameters en worden deze na 15 elkaar vertoond. Het visuele effect van een dergelijke ingreep is wederom nauwelijks opmerkbaar door het menselijke oog. Het wordt hierdoor mogelijk twee of meer fragmenten in te lassen (interleaving). Op alternatieve wijze is het mogelijk dat de fragmentcodeerder 22 middelen omvat voor 20 het combineren van slices onder toepassing van pixel en texturemapping informatie van de macroblokken voor het produceren van een gecombineerd resultaat.After repositioning in step 84, slices and / or fragments are sorted in step 85 at the X and Y position, preferably first in the Y position and then in the X position according to the order in which they will be applied in the applied codec. It can happen that slices and / or fragments overlap. In this case, a conflict resolution is performed in step 88. Hereby it is possible that background slices that are completely overlapped by foreground slices are omitted. If several foreground slices overlap, according to the present invention, an image splitting algorithm can be applied to obtain two or more images instead of one. Each image here has its own image parameters or slice parameters and these are displayed one after the other. The visual effect of such an operation is again hardly noticeable by the human eye. This makes it possible to insert two or more fragments (interleaving). Alternatively, the fragment encoder 22 may include means for combining slices using pixel and texture mapping information from the macroblocks to produce a combined result.

In stap 89 worden openingen of lege vlakken in het beeld gevuld indien deze niet zijn ingevuld door een sli-25 ce. Hiertoe wordt voor dergelijke lege vlaken een of meerdere slices gedefinieerd welke slices geen bewerking coderen voor deze makroblokken. Vervolgens worden beeldkopti-tels, omvattende bijvoorbeeld beeldparameters, gedefinieerd en worden deze evenals de gesorteerde slices uitge-30 voerd op een seriële wijze in de vorm van een gecodeerde beeld en stroom in overeenstemming met de videostandaard die wordt toegepast voor de sessie van de gebruikersinterface .In step 89, apertures or blank areas in the image are filled if they are not filled in by a slider. To this end, one or more slices are defined for such blank faces, which slices do not encode any operation for these macro blocks. Next, image couplers, including, for example, image parameters, are defined and, like the sorted slices, are executed in a serial manner in the form of an encoded image and stream in accordance with the video standard used for the user interface session.

2828

Aan de hand van Fig. 8 A-D worden beeldovergangen en werkwijzen voor het uitvoeren daarvan volgens voorkeursuitvoeringsvormen volgens de onderhavige uitvinding beschreven. Hierbij worden volgens de onderhavige uitvin-5 ding pixels die beschikbaar zijn in de referentiebeelden van de cliëntinrichting, ofwel decodeerder voor de codec, herbruikbaar als een texturemap. Codeerders volgens de stand van de techniek functioneren onder de aanname dat referentiebeelden niet zijn geïnitialiseerd en kunnen der-10 halve niet worden toegepast aan het begin van een sequentie. Volgens de onderhavige uitvinding worden gecodeerde fragmenten gecodeerd om deel uit te maken van grotere sequenties waarbij referentiebeelden bij het coderen bruikbare pixels omvatten van eerder gedecodeerde gecodeerde 15 fragmenten. Deze pixels worden volgens de onderhavige uitvinding toepasbaar als een textuur voor het gecodeerde fragment. Afhankelijk van de karakteristieken van de toegepaste codec kan hierbij gebruik worden gemaakt van een aantal referentiebeelden, zoals 2 referentiebeelden in ge-20 val van MPEG-2 en bijvoorbeeld 16 referentiebeelden in geval van H.264.With reference to FIG. 8 A-D, image transitions and methods for performing them according to preferred embodiments of the present invention are described. Here, according to the present invention, pixels available in the reference images of the client device, or decoder for the codec, become reusable as a texturemap. Prior art coders function under the assumption that reference images are not initialized and therefore cannot be applied at the beginning of a sequence. According to the present invention, encoded fragments are encoded to form part of larger sequences in which reference images encode useful pixels of previously decoded encoded fragments. These pixels become applicable according to the present invention as a texture for the encoded fragment. Depending on the characteristics of the codec used, a number of reference images may be used, such as 2 reference images in the case of MPEG-2 and, for example, 16 reference images in the case of H.264.

Door hierbij bewegingsvectoren toe te passen is het mogelijk bewegingen van beelden of beeldonderdelen te tonen. Aangezien gecodeerde fragmentbeelden die worden ge-25 decodeerd deel uit zullen maken van de referentiebeelden kan dit proces iteratief worden toegepast waarbij bijvoorbeeld texturemapping bewerkingen worden uitgevoerd op achtereenvolgende beelden en de bewerkingen daarvan.By applying motion vectors, it is possible to show movements of images or image components. Since coded fragment images that are decoded will be part of the reference images, this process can be applied iteratively, with, for example, texture mapping operations being performed on successive images and their operations.

Een verder voorbeeld van een dergelijke bewerking 30 betreft affiene transformaties waarbij beelden bijvoorbeeld van maatvoering veranderen. Hiermee kunnen texture-pixels worden vergroot zoals is getoond in Fig. 8B. Voor grote veranderingen is het mogelijk een of meerdere tus- 29 senliggende referentiebeelden te verschaffen met een resolutie die beter is dan dat van een vergroot beeldelement op basis van welke tussenreferentiebeeld verdere bewerkingen kunnen worden uitgevoerd. Hoeveel referentiebeelden 5 worden gebruikt voor een overgang van klein naar groot kan worden bepaald op basis van beschikbare bandbreedte of rekencapaciteit die beschikbaar is in relatie tot kwaliteitseisen voor de grafische kwaliteit van de beelden. Verder kan gebruik worden gemaakt van codec afhankelijke 10 mogelijkheden zoals gewogen voorspellingen (H.264) voor het verschaffen van soepele overgangen of overvloeingen (cross fades) tussen pixels van verschillende textuurbeel-den, zoals is getoond in Fig. 8C. Bilineaire interpolatie kan hiervoor een alternatief bieden.A further example of such an operation concerns affine transformations in which images, for example, change dimensions. This allows texture pixels to be enlarged as shown in Figs. 8B. For large changes, it is possible to provide one or more intermediate reference images with a resolution that is better than that of an enlarged pixel on the basis of which intermediate reference image further operations can be performed. How many reference images are used for a transition from small to large can be determined based on available bandwidth or computing capacity that is available in relation to quality requirements for the graphic quality of the images. Furthermore, use can be made of codec dependent capabilities such as weighted predictions (H.264) to provide smooth transitions or blends (pixels) between pixels of different texture images, as shown in FIG. 8C. Bilineal interpolation can offer an alternative for this.

15 Een benadering van textureoverlays en alfa- blending kan worden bereikt door middel van het optellen bij of aftrekken van waarden van de textuurpixels voor het veranderen van de kleur of intensiteit daarvan, zoals is getoond in Fig. 8D. Door het optellen of aftrekken van een 20 maximale waarde kan een pixel worden ingesteld tot bijvoorbeeld een zwart- of witwaarde, welk proces ook kan worden aangeduid door clipping. Door eerst een dergelijke clipping stap toe te passen op een chrominantie- en/of lu-minantiewaarde en vervolgens een gewenste waarde hierbij 25 op te tellen of af te trekken kan binnen de textuur elke gewenste waarde worden ingesteld en elke overlay worden verschaft op pixelniveau. Een dergelijke tweestapswerkwij-ze kan vrijwel onzichtbaar voor het oog worden gerealiseerd, zeker tijdens soepele overgangen. Deze processen 30 voor texturemapping bieden onder gebruikmaking van referentiebeelden een grote verbetering van de prestaties bij geringe rekenkracht of bandbreedtegebruik aangezien de benodigde gegevens beschikbaar zijn in de referentiebuffers 30 van de decoder op het moment van weergave. Tevens wordt de onderlinge afhankelijkheid op data van verschillende gecodeerde beelden beperkt waardoor hergebruik wordt vergroot en cache-efficiëntie wordt vergroot.An approach to texture overlays and alpha blending can be achieved by adding to or subtracting values from the texture pixels to change the color or intensity thereof, as shown in FIG. 8D. By adding or subtracting a maximum value, a pixel can be set to, for example, a black or white value, which process can also be indicated by clipping. By first applying such a clipping step to a chrominance and / or luminance value and then adding or subtracting a desired value therewith, any desired value can be set within the texture and each overlay is provided at the pixel level. Such a two-step process can be practically invisible to the eye, especially during smooth transitions. These texture mapping processes 30 offer a great improvement in performance with low computing power or bandwidth utilization using reference images since the required data is available in the decoder reference buffers 30 at the time of reproduction. The interdependence on data of different encoded images is also limited, so that reuse is increased and cache efficiency is increased.

5 Een verdere voorkeursuitvoeringsvorm (fig.9) vol gens de onderhavige uitvinding betreft een systeem 101 met een in hoofdzaak soortgelijk doel als het systeem van figuur 1. Applicaties die draaien op de applicatieservers 4,5 worden middels de server 102 en de server 103 geschikt 10 gemaakt voor weergave op de cliëntinrichting 3. Hierbij worden fragmenten gecreëerd in de server 102 tezamen met samenstelinstructies die betrekking hebben op de positie van de fragmenten in een videostroom die kan worden ontvangen door de cliëntinrichting 3. De fragmenten en de sa-15 menstelinstructies worden vervolgens verzonden naar de vi-deostroomsamensteller 103. De videosamensteller 103 produceert op basis van deze informatie de videostroom 8 voor aflevering aan de cliëntinrichting. Indien de videosamensteller 103 geen beschikking heeft over bepaalde fragmen-20 ten zal die deze opvragen door middel van een verzoek 128 aan de server 102.A further preferred embodiment (Fig. 9) according to the present invention relates to a system 101 with a substantially similar purpose as the system of Fig. 1. Applications running on the application servers 4,5 are arranged by means of the server 102 and the server 103 by means of the server 102 and the server 103. 10 made for display on the client device 3. Here, fragments are created in the server 102 together with assembly instructions that relate to the position of the fragments in a video stream that can be received by the client device 3. The fragments and the assembly instructions are then sent to the video stream composer 103. The video composer 103 produces the video stream 8 for delivery to the client device based on this information. If the video composer 103 does not have access to certain fragments, it will request them by means of a request 128 to the server 102.

Een en ander is in groter detail getoond in figuur 10. De server voor het samenstellen van de fragmenten en het vervaardigen van de samenstelinstructies 102 omvat in 25 hoofdzaak dezelfde elementen als die zijn getoond in figuur 2. Een belangrijk verschil van de uitvoeringsvorm van figuur 10 ten opzichte van figuur 2 is dat de servers 102 en 103 onderling zijn gescheiden danwel· onderling verbindbaar zijn door middel van een communicatienetwerk 110. Dit 30 communicatienetwerk 110 is bij voorkeur het open internet maar dit kan tevens een toegewijd netwerk zijn van een netwerkbeheerder of een service provider voor het verschaffen van internettoegang. Bij de toepassing van een 31 dergelijk netwerk 110 tussen de servers 102 en 103 kan gebruik worden gemaakt van op zichzelf bekende cachefunctio-naliteiten van het netwerk. Bijvoorbeeld in het geval van internet wordt veelal gebruik gemaakt van cachefuncties in 5 knooppunten. Door de communicatie tussen de servers 102 en 103 op voor het netwerk gestandaardiseerde wijze te laten uitvoeren kunnen fragmenten die over dit netwerk worden verzonden op efficiënte wijze worden verzonden. Hierbij kan bijvoorbeeld gebruik gemaakt worden van een 'GET' in-10 structie die bijvoorbeeld deel uitmaakt van http.All this is shown in greater detail in Figure 10. The server for assembling the fragments and manufacturing the assembly instructions 102 comprises substantially the same elements as those shown in Figure 2. An important difference from the embodiment of Figure 10. with respect to figure 2 it is that the servers 102 and 103 are mutually separate or mutually connectable by means of a communication network 110. This communication network 110 is preferably the open internet, but this can also be a dedicated network of a network administrator or a service provider for providing internet access. In the application of such a network 110 between the servers 102 and 103, use can be made of cache functionalities of the network known per se. For example, in the case of the Internet, cache functions in 5 nodes are often used. By having the communication between the servers 102 and 103 carried out in a network standardized manner, fragments transmitted over this network can be transmitted efficiently. For this, use can be made, for example, of a 'GET' in-10 structure that is, for example, part of http.

De server 103 dient voor het samenstellen van de videostromen die uiteindelijk worden overgebracht naar de bijvoorbeeld opzetkast (cliëntinrichting) van de eindgebruiker. Hierbij is de functionaliteit van de fragmenten-15 samensteller in hoofdzaak soortgelijk aan die van de fragmentensamensteller 24 van figuur 2. Een verschil is dat deze fragmentensamensteller 24 van figuur 10 de instructies ontvangt na transport daarvan over het netwerk 110. Dit geldt eveneens voor de toe te passen fragmenten. Op 20 een soortgelijke wijze als in het voorgaande is beschreven dient de cachefunctie 23 van de server 103 voor het tijdelijk opslaan van opnieuw te gebruiken fragmenten of fragmenten die tijdelijk dienen te worden bewaard. Omdat deze, anticiperend op te verwachte weer te geven beelden in de 25 videostroom, al eerder zijn vervaardigd.The server 103 serves to assemble the video streams that are ultimately transferred to the end user's set-up box (client device), for example. Here, the functionality of the fragment composer is substantially similar to that of the fragment composer 24 of Fig. 2. A difference is that this fragment composer 24 of Fig. 10 receives the instructions after being transported over the network 110. This also applies to the fragments to fit. In a similar manner to that described above, the cache function 23 of the server 103 serves for temporarily storing reusable fragments or fragments that are to be temporarily stored. Because these, in anticipation of the expected images to be displayed in the video stream, have already been produced before.

Voor het verhogen van de efficiëntie van de eenheid is een zogenoemde opvulmodule 105 opgenomen die toegewijde loze frames aanmaakt of frames aanvult met loze informatie, of althans informatie die niet behoeft te wor-30 den weergegeven op het beeldscherm van de gebruiker, zoals eerder in deze tekst is genoemd. De bedoeling hiervan is om zoals in het voorgaande reeds is aangeduid gebruik te maken van in beeldbuffers van de cliëntinrichting aanwezi- 32 ge informatie voor het weergeven van beelden op het beeldscherm wanneer geen nieuwe informatie behoeft te worden weergegeven of deze nog niet beschikbaar is vanwege systeem latency. Aan de hand van figuur 11 wordt hierop nader 5 ingegaan. Een voordeel hiervan is dat dergelijke loze frames een grote besparing bieden in brandbreedte en proces-sorcapaciteit tussen de server 102 en de server 103. Verder kunnen beelden eenvoudiger worden gecombineerd.To increase the efficiency of the unit, a so-called padding module 105 is included that creates dedicated frames or supplements frames with blank information, or at least information that does not need to be displayed on the user's display, as previously described herein. text is mentioned. The purpose of this is to make use of information present in image buffers of the client device as shown in the foregoing for displaying images on the screen when no new information needs to be displayed or is not yet available due to system latency. This is discussed in more detail with reference to Figure 11. An advantage hereof is that such empty frames offer a large saving in bandwidth and processor capacity between the server 102 and the server 103. Furthermore, images can be combined more easily.

In figuur 11 is een sequentieschema getoond voor 10 het uitvoeren van een aantal stappen volgens een uitvoeringsvorm. Figuur 11a toont hoe vanaf de server 102 samen-stelinformatie 129 wordt overgebracht naar de server 103. Deze samenstelinformatie kan daar direct worden gebruikt of worden opgeslagen in een cachegeheugen. Een dergelijk 15 cachegeheugen kan op geschikte wijze bijvoorbeeld RAMge-heugen en hardeschijfgeheugen omvatten. Ook aan de zijde van de server 102 kan een tijdelijke opslag worden voorzien van fragmenten en samenstelinformatie-eenheden die in verschillende servers 103 voor verschillende gebruikers-20 groepen. Vervolgend op het ontvangen van deze samenstelin-formatie 129 bepaalt de server 103 of alle fragmenten die vereist zijn aanwezig zijn in de cache. Indien dit niet het geval is zal de server 103 middels informatieverzoeken 128a de vereiste fragmenten opvragen. In de periode die 25 nodig is voor het ontvangen en verwerken van de benodigde fragmenten kan de server 103 opvulframes 131 verzenden naar de cliënt zodat deze op een beeldcompressie standaard afhankelijke wijze het beeldscherm kan voorzien van de benodigde informatie. Bij bijvoorbeeld mpeg 2 is bij de 30 meeste decodeereenheden informatie vereist over de opbouw van de beelden per weer te geven raster. De server 102 voorziet de server 103 door middel van informatieverzen-dingen 129a van de benodigde codeerde fragmenten. In reac- 33 tie op de verzonden fragmentenverzoeken 128a. Na verwerking daarvan door de server 103 wordt door de server 103 een gecodeerde audiovideostroom met inbegrip van de informatie van de gecodeerde fragmenten 129 a verzonden in de 5 vorm van een stroom 108. De server 103 kan de beelden van de videostroom opbouwen op basis van de fragmenten en de samenstelinformatie.Figure 11 shows a sequence diagram for performing a number of steps according to an embodiment. Figure 11a shows how assembly information 129 is transferred from server 102 to server 103. This assembly information can be used there directly or stored in a cache memory. Such a cache memory may suitably comprise, for example, RAM memory and hard disk memory. Also on the side of the server 102 a temporary storage can be provided with fragments and assembly information units that are in different servers 103 for different user groups. Subsequent to receiving this assembly information 129, the server 103 determines whether all of the fragments required are present in the cache. If this is not the case, the server 103 will request the required fragments by means of information requests 128a. In the period required for receiving and processing the required fragments, the server 103 can send pad frames 131 to the client so that it can provide the display with the required information in a standard compression manner. For example, with MPEG 2, information is required on most of the decoding units about the structure of the images per frame to be displayed. The server 102 provides the server 103 with the required encoded fragments by means of information transmissions 129a. In response to the sent fragment requests 128a. After being processed by the server 103, an encrypted audio video stream including the information of the encoded fragments 129a is transmitted by the server 103 in the form of a stream 108. The server 103 can construct the images of the video stream on the basis of the excerpts and the assembly information.

In figuur 11b is getoond hoe het systeem functioneert indien de eindgebruiker meer informatie verzoek sa-10 menstelt door middel van bijvoorbeeld zijn afstandbediening. De gebruiker voert bijvoorbeeld op basis van de grafische gebruikersinterface op zijn beeldscherm keuzen of andere invoer in op zijn afstandbediening die wordt ontvangen door de cliëntinrichting 3. Op basis hiervan ver-15 zendt de cliëntinrichting via een netwerk, zoals een kabelnetwerk, het internet of een mobiel netwerk met deze wensen van de gebruiker overeenstemmende instructies naar de server 102. Deze server 102 zorgt er vervolgens voor dat de gebruiker via de server 103 de beschikking krijgt 20 over de juiste videostroom. Hiertoe bepaalt de applicatie-module 28 op basis van gegevens van de applicatiefrontend 4 op welke wijze binnen de structuur van een gebruikte codec op efficiënte wijze informatie kan worden weergegeven op het beeldscherm ten behoeve van de gebruiker. Deze ge-25 wenste informatie wordt vervolgens bewerkt door de modulen 25,26,27 die in het voorgaande aan de hand van een eerder voorkeursuitvoeringsvorm al zijn beschreven. De fragment-codeerder 22 vormt vervolgens de fragmenten. De applica-tie-eenheid 28 vormt tevens de samenstelinformatie. Deze 30 samenstelinformatie wordt middels de communicatie 129 van figuur 11b overgebracht van de server 102 naar de server 103 over bijvoorbeeld het open internet. Vervolgens wordt de videostroom 108 samengesteld uit de fragmenten op basis 34 van de samenstelinformatie, in dit geval op basis van fragmentinformatie die al aanwezig was in de server 103. Indien dergelijke fragmentinformatie niet aanwezig is wordt de werkwijze van figuur 11a herhaald. Als resultaat 5 wordt door de set-up box 3 de gewenste videostroom getoond aan de gebruiker.Figure 11b shows how the system functions if the end user compiles more information request by means of, for example, his remote control. For example, the user enters choices or other input on his remote control that is received by the client device 3 based on the graphical user interface. On this basis, the client device transmits via a network, such as a cable network, the internet or a mobile network with instructions corresponding to the wishes of the user to the server 102. This server 102 then ensures that the user is provided with the correct video stream via the server 103. To this end, the application module 28 determines, on the basis of data from the application frontend 4, how information can be efficiently displayed on the screen for the user within the structure of a codec used. This desired information is then processed by the modules 25, 26, 27 which have already been described above with reference to a previously preferred embodiment. The fragment encoder 22 then forms the fragments. The application unit 28 also forms the assembly information. This assembly information is transmitted via the communication 129 of figure 11b from the server 102 to the server 103 via, for example, the open internet. Subsequently, the video stream 108 is composed of the fragments on the basis 34 of the assembly information, in this case on the basis of fragment information that was already present in the server 103. If such fragment information is not present, the method of Fig. 11a is repeated. As a result 5, the desired video stream is shown to the user by the set-up box 3.

In figuur 11c wordt eveneens begonnen met een informatieverzoek van 109 van de gebruiker van de opzetkast 3 naar de server 102. Als reactie hierop wordt de samen-10 stelinformatie overgezonden van de server 102 naar de server 103 met direct daar achteraan de gecodeerde fragmenten die nodig zijn voor het weergeven van het gewenste beeld aan de gebruiker. In dit geval weet de server 102 dat deze fragmenten niet aanwezig zijn bij de server 103.In Fig. 11c, a request for information from the user from the set-top box 3 to the server 102 is also started. In response, the assembly information is transmitted from the server 102 to the server 103 with immediately behind it the coded fragments that are needed. for displaying the desired image to the user. In this case, the server 102 knows that these fragments are not present at the server 103.

15 In figuur 12a wordt getoond dat op basis van ge- bruikersinvoer 121, die uiteindelijk afkomstig is van zijn invoerinrichting zoals de afstandsbediening, samenstelinformatie voor de gebruikerssessie wordt verzonden in stap 122 van de server 102 naar de server 103.Figure 12a shows that based on user input 121, which ultimately comes from its input device such as the remote control, assembly information for the user session is sent in step 122 from the server 102 to the server 103.

20 In figuur 12b wordt een werkwijze getoond voor het opvragen van fragmenten door de server 103 aan de server 102. In stap 123 worden verzoeken gezonden van de server 103 naar de server 102. In deze verzoeken wordt op basis van niet beschikbare benodigde fragmenten een verzoek tot 25 het aanleveren daarvan gedaan. De applicatiemodule 28 bepaalt op basis van gegevens van de applicatie welke gegevens hiervoor nodig zijn en zend instructies hiertoe via de module 25 en 26 naar de module 22 in stap 124. Na het aanmaken van de door de server 103 gewenste fragmenten 30 worden deze doorgezonden van de server 102 naar de server 103 in stap 125. Indien de server 103 de fragmenten reeds in een eerder stadium had aangemaakt kan deze worden opge- 35 vraagd uit een in de server aanwezige cache indien deze fragmenten daarin waren opgeslagen.Figure 12b shows a method for requesting fragments from the server 103 to the server 102. In step 123, requests are sent from the server 103 to the server 102. In these requests, a request is made based on unavailable required fragments. up to 25 done. The application module 28 determines which data is needed for this on the basis of data from the application and sends instructions for this via the modules 25 and 26 to the module 22 in step 124. After creating the fragments 30 desired by the server 103, they are forwarded from the server 102 to the server 103 in step 125. If the server 103 had already created the fragments at an earlier stage, it can be retrieved from a cache present in the server if these fragments were stored therein.

De server 103 voert de stappen uit die zijn getoond in figuur 12c. In stap 126 wordt samenstelinformatie 5 ontvangen die is verzonden door een server 102. Vervolgens wordt in stap 127 een verzoek gedaan aan de cache 23 om deze fragmenten te leveren aan de fragmentsamensteller 24. In stap 128 wordt door de cache-eenheid 23 bepaald of de fragmenten aanwezig zijn. Indien deze fragmenten niet aan-10 wezig zijn wordt in stap 129 een verzoek gedaan aan de server 102 om deze fragmenten te verzenden naar de server 102. Dit gebeurt volgens de werkwijze van figuur 12b. Vervolgens wordt geretourneerd naar stap 128 totdat de benodigde fragmenten in de cache aanwezig zijn. Op alternatie-15 ve wijze kan op grond van het verzoek aangeleverde fragmenten rechtstreeks worden verwerkt bij binnenkomst in de server 102. Vervolgens wordt op basis van alle fragmenten en de samenstelinformatie een beeld of videostroom samengesteld.The server 103 performs the steps shown in Figure 12c. In step 126, assembly information 5 is sent that is sent by a server 102. Next, in step 127, a request is made to the cache 23 to deliver these fragments to the fragment composer 24. In step 128, the cache unit 23 determines whether the fragments are present. If these fragments are not present, in step 129 a request is made to the server 102 to send these fragments to the server 102. This is done according to the method of Fig. 12b. It is then returned to step 128 until the required fragments are present in the cache. Alternatively, fragments supplied on the basis of the request can be processed directly upon entering the server 102. An image or video stream is then compiled on the basis of all fragments and the assembly information.

20 In de uitvoeringsvorm van de figuren 9-12 worden verdere besparingen in bandbreedte bereikt, wanneer bijvoorbeeld de server 102 in een datacenter wordt geplaatst en de server 103 dichter bij de clients, bijvoorbeeld in een wijkcentrale. De videostromen die uit de fragmentsa-25 mensteller naar de clients verstuurd worden, gebruiken veel bandbreedte, maar deze zijn ook zeer redundant, omvattende een veelheid van herhalende fragmenten. Een belangrijk deel van deze redundante informatie wordt beperkt door het op het ook aan de hand van de eerste uitvoering 30 beschreven gebruik van de beeldbuffers in de cliënts.In the embodiment of figures 9-12 further savings in bandwidth are achieved when, for example, the server 102 is placed in a data center and the server 103 is closer to the clients, for example in a district exchange. The video streams sent to the clients from the fragrance mixer use a lot of bandwidth, but they are also very redundant, including a plurality of repeating fragments. An important part of this redundant information is limited by the use of the image buffers in the clients, also described with reference to the first embodiment.

Daarnaast is het voordelig vanuit netwerkoogpunt om dit bandbreedtegebruik door een zo beperkt mogelijk deel van het netwerk te sturen.In addition, it is advantageous from a network point of view to control this bandwidth usage through as limited a part of the network as possible.

3636

De benodigde bandbreedte tussen de server 102 en de server 103 bevat een zeer geringe redundantie en in dit traject kan ten opzichte van het traject van de server 103 en de cliënt 3 derhalve vele malen efficiënter zijn. Te-5 vens is hierdoor mogelijk meerdere fragmentcache-eenheden en fragmentsamenstellers te laten werken met één of meer fragmentencodeerders, waarbij het onderhoud van de systemen door verschillende beheerders kan worden uitgevoerd. Dit verschaft voordelen met betrekking tot beheer en sta-10 biliteit.The required bandwidth between the server 102 and the server 103 contains a very low redundancy and in this path can therefore be many times more efficient than the path of the server 103 and the client 3. This also makes it possible for several fragment cache units and fragment composers to operate with one or more fragment coders, whereby the maintenance of the systems can be carried out by different administrators. This provides management and stability benefits.

In het voorgaande is de onderhavige uitvinding beschreven aan de hand van enkele voorkeursuitvoeringsvormen. Verschillende aspecten van verschillende uitvoeringen worden beschreven geacht in combinatie daarvan waarbij al-15 le combinaties die op basis van dit document door een vakman kunnen worden gemaakt dienen te worden meegelezen. Deze voorkeursuitvoeringsvormen zijn niet beperkend voor de beschermingsomvang van deze tekst. De gevraagde rechten worden bepaald in de aangehechte conclusies.In the foregoing, the present invention has been described with reference to a few preferred embodiments. Different aspects of different embodiments are considered described in combination thereof, wherein all combinations that can be made by a person skilled in the art on the basis of this document must be read. These preferred embodiments are not limitative of the scope of this text. The rights requested are defined in the appended claims.

20 103392920 1033929

Claims (24)

1. Werkwijze voor het streamen van parallelle gebruikerssessies (sessies) van ten minste één server naar 5 ten minste één cliëntinrichting van een veelvoud aan cli-entinrichtingen voor het weergeven van de sessies op een aan een cliëntinrichting koppelbaar beeldscherm, waarbij de sessies videodata en eventuele additionele data zoals audiodata omvatten, waarbij de werkwijze stappen omvat 10 voor: - het op basis van herbruikbare beeldinformatie definiëren van gecodeerde fragmenten, waarbij de gecodeerde fragmenten geschikt zijn voor het samenstellen van de videodata in een vooraf bepaald dataformaat, zoals een vi- 15 deostandaard of een videocodec, en de gecodeerde fragmenten geschikt zijn voor toepassing in een of meer beelden en/of een of meer sessies, - het per sessie samenstellen van een datastroom omvattende videogegevens onder toepassing van de gecodeer- 20 de fragmenten.Method for streaming parallel user sessions (sessions) from at least one server to at least one client device from a plurality of client devices for displaying the sessions on a screen that can be connected to a client device, wherein the sessions have video data and any additional data such as audio data, the method comprising steps of: - defining encoded fragments on the basis of reusable image information, the encoded fragments being suitable for compiling the video data in a predetermined data format, such as a video standard or a video codec, and the encoded fragments are suitable for use in one or more images and / or one or more sessions, - compiling a data stream comprising video data per session using the encoded fragments. 2. Werkwijze volgens conclusie 1 omvattende stappen voor het bij het definiëren van de gecodeerde fragmenten toepassen van een aantal in een raster rangschikbare 25 codecslices en/of onderling onafhankelijke codecslices onder afhankelijkheid van weer te geven beeldobjecten van de gebruikersinterface.2. Method as claimed in claim 1, comprising steps for applying a number of codecslicable and / or mutually independent codecslicable sequences in the field when defining the coded fragments, depending on image objects of the user interface to be displayed. 3. Werkwijze volgens een of meer van de voorgaande 30 conclusies omvattende stappen voor het verwijzen van gecodeerde fragmenten naar beeldpunten van een referentie-beeldbuffer in een decodeerorgaan zelfs indien de beeld- 1033929 punten in deze buffer niet zijn ingesteld op basis van dit gecodeerde fragment.3. Method as claimed in one or more of the foregoing claims, comprising steps for referring coded fragments to pixels of a reference image buffer in a decoder even if the pixels in this buffer are not set based on this coded fragment. 4. Werkwijze volgens een of meer van de voorgaande 5 conclusies omvattende stappen voor het combineren van co- decslices of gecodeerde fragmenten teneinde op sequentiële wijze bewerkingen uit te voeren op beeldpunten in referen-tiebuffers op een wijze die in overeenstemming is met de standaard van het dataformaat. 104. Method according to one or more of the preceding claims, comprising steps for combining codeslices or encoded fragments to sequentially perform operations on pixels in reference buffers in a manner consistent with the standard of the data format. 10 5. Werkwijze volgens een of meer van de voorgaande conclusies omvattende stappen voor het tijdelijk in een snel toegankelijk geheugen opslaan van de beeldfragmenten.5. Method as claimed in one or more of the foregoing claims, comprising steps for temporarily storing the image fragments in a quickly accessible memory. 6. Werkwijze volgens een of meer van de voorgaande conclusies omvattende stappen voor het uit het snel toegankelijke geheugen uitlezen van de tijdelijk opgeslagen beeldfragmenten en/of slices.Method as claimed in one or more of the foregoing claims, comprising steps for reading out the temporarily stored image fragments and / or slices from the quickly accessible memory. 7. Werkwijze volgens een of meer van de voorgaande conclusies omvattende stappen voor het toevoegen van een tag aan de gecodeerde fragmenten.Method according to one or more of the preceding claims, comprising steps for adding a tag to the encoded fragments. 8. Werkwijze volgens conclusie 7 omvattende stap-25 pen voor het terughalen van gecodeerde fragmenten op basis van de tag.8. Method as claimed in claim 7, comprising steps for retrieving coded fragments on the basis of the tag. 9. Werkwijze volgens een of meer van de voorgaande conclusies omvattende stappen voor het vervaardigen van 30 texturemappinggegevens voor toepassing daarvan in gecodeerde fragmenten.9. Method as claimed in one or more of the foregoing claims, comprising steps for producing textural mapping data for use thereof in coded fragments. 10. Werkwijze volgens een of meer van de voorgaande conclusies omvattende stappen voor het gebruiken van gegevens met betrekking tot de vorm en/of dimensies van de slices in de stappen voor het definiëren van de gecodeerde 5 fragmenten.10. Method as claimed in one or more of the foregoing claims, comprising steps for using data with regard to the shape and / or dimensions of the slices in the steps for defining the coded fragments. 11. Werkwijze volgens een of meer van de voorgaande conclusies waarbij de stappen voor het samenstellen van de datastroom stappen omvat voor het gebruiken van media- 10 assets zoals tekst, beelden, video en/of geluid.11. Method as claimed in one or more of the foregoing claims, wherein the steps for putting together the data stream comprise steps for using media assets such as text, images, video and / or sound. 12. Werkwijze volgens een of meer van de voorgaande conclusies omvattende stappen voor het verzenden van opvulframes of voor het niet verzenden van beeldinforma- 15 tie.12. Method as claimed in one or more of the foregoing claims, comprising steps for sending fill-in frames or for not sending image information. 13. Werkwijze voor het streamen van parallelle gebruikerssessies (sessies) van ten minste één server naar ten minste één cliëntinrichting van een veelvoud aan cli- 20 entinrichtingen voor het weergeven van de sessies op een aan een cliëntinrichting koppelbaar beeldscherm, waarbij de sessies videodata en eventuele additionele data zoals audiodata omvatten, waarbij de werkwijze stappen omvat voor: 25. het door een applicatiefragmentencreatieserver op basis van herbruikbare beeldinformatie definiëren van gecodeerde fragmenten, waarbij de gecodeerde fragmenten geschikt zijn voor het samenstellen van de videodata in een vooraf bepaald dataformaat, zoals een videostandaard 30 of een videocodec, en de gecodeerde fragmenten geschikt zijn voor toepassing in een of meer beelden en/of een of meer sessies, - het door de applicatiefragmentencreatieserver verzenden van de gecodeerde fragmenten voor ontvangst door een videostroomsamenstelserver.13. Method for streaming parallel user sessions (sessions) from at least one server to at least one client device from a plurality of client devices for displaying the sessions on a display linkable to a client device, wherein the sessions contain video data and any additional data such as audio data, the method comprising steps of: 25. defining encoded fragments by an application fragment creation server based on reusable image information, the encoded fragments being capable of compiling the video data in a predetermined data format, such as a video standard Or a video codec, and the encoded fragments are suitable for use in one or more images and / or one or more sessions, - sending the encoded fragments by the application fragment creation server for reception by a video stream composition server. 14. Werkwijze voor het voor het streamen van pa rallelle gebruikerssessies (sessies) van ten minste één server naar ten minste één cliëntinrichting van een veelvoud aan cliëntinrichtingen voor het weergeven van de sessies op een aan een cliëntinrichting koppelbaar beeld- 10 scherm, waarbij de sessies videodata en eventuele additionele data zoals audiodata omvatten, waarbij de werkwijze stappen, en, waarbij de gecodeerde fragmenten geschikt zijn voor het samenstellen van de videodata in een vooraf bepaald dataformaat, zoals een videostandaard of een vi- 15 deocodec, en de gecodeerde fragmenten geschikt zijn voor toepassing in een of meer beelden en/of een of meer sessies, omvat voor: - het door een videostroomsamenstelserver ontvangen van gedoceerde fragmenten vanaf een applicatiefrag- 20 mentcreatieserver; - het verwerken en/of het voor latere toepassing in een lokaal geheugen opslaan van de fragmenten; - het per sessie samenstellen van een datastroom omvattende videogegevens onder toepassing van de gecodeer- 25 de fragmenten.14. Method for streaming parallel user sessions (sessions) from at least one server to at least one client device of a plurality of client devices for displaying the sessions on a display device which can be coupled to a client device, wherein the sessions include video data and any additional data such as audio data, wherein the method steps, and wherein the encoded fragments are suitable for compiling the video data in a predetermined data format, such as a video standard or a video codec, and the encoded fragments are suitable for use in one or more images and / or one or more sessions, comprising of: - receiving video fragments from an application stream creation server by a video stream composition server; - processing and / or storing the fragments in a local memory for later use; - compiling a data stream comprising video data per session using the encoded fragments. 15. Werkwijze volgens conclusie 13 of 14, omvattende stappen volgens een of meer van de conclusies 1-12.Method according to claim 13 or 14, comprising steps according to one or more of claims 1-12. 16. Werkwijze volgens een of meer van de voorgaan de conclusies omvattende stappen voor het door de videostroomsamenstelserver opvragen van fragmenten aan een ap-plicatiefragmentencreatieserver.Method according to one or more of the preceding claims, comprising the steps of requesting fragments from the application stream composition server to an application fragment creation server. 17. Werkwijze volgens een of meer van de voorgaande conclusies omvattende stappen voor het creëren van sa-menstelinformatie voor het op basis daarvan samenstellen 5 van een videostroom onder toepassing van een aantal fragmenten.17. Method as claimed in one or more of the foregoing claims, comprising steps for creating assembly information for composing a video stream on the basis thereof using a number of fragments. 18. Systeem voor het streamen van een aantal parallelle gebruikerssessies (sessies) van ten minste één 10 server naar ten minste één cliëntinrichting van een veelvoud aan cliëntinrichtingen voor het weergeven van de sessies op een aan een cliëntinrichting koppelbaar beeldscherm, waarbij de sessies videodata en eventuele additionele data zoals audiodata omvatten, omvattende: 15. ten minste een server voor het: - coderen van herbruikbare beelddata tot gecodeerde fragmenten, - samenstellen van videostreams omvattende ten minste een gecodeerd fragment, 20. ontvangstmiddelen voor het ontvangen van ten minste gebruikersinstructies, - verzendmiddelen voor het verzenden van videostreams in een vooraf bepaald dataformaat, zoals Mpeg of H.264, naar de cliëntinrichtingen. 2518. A system for streaming a plurality of parallel user sessions (sessions) from at least one server to at least one client device from a plurality of client devices for displaying the sessions on a display linkable to a client device, the sessions containing video data and any additional data such as audio data, comprising: 15. at least one server for: - encoding reusable image data into encoded fragments, - assembling video streams comprising at least one encoded fragment, 20. receiving means for receiving at least user instructions, - transmitting means for sending video streams in a predetermined data format, such as Mpeg or H.264, to the client devices. 25 19. Systeem volgens conclusie 13 omvattende een snel toegankelijk geheugen, zoals een cachegeheugen, voor het tijdelijk opslaan van de gecodeerde fragmenten.A system according to claim 13 comprising a quickly accessible memory, such as a cache memory, for temporarily storing the encoded fragments. 20. Systeem volgens conclusie 18 of 19 omvattende middelen voor het omzetten en/of multiplexen van datastro-men voor verzending daarvan naar de cliëntinrichtingen.A system according to claim 18 or 19 comprising means for converting and / or multiplexing data streams for transmission thereof to the client devices. 21. Systeem volgens een of meer van de conclusies 18-20 omvattende een toepassingsserver omvattende de ont-vangstmiddelen, waarbij de toepassingsserver is ingericht voor het aanpassen van een server en/of gebruikerstoepas- 5 sing voor weergave via de cliëntinrichting.21. System as claimed in one or more of the claims 18-20, comprising an application server comprising the receiving means, wherein the application server is adapted to adapt a server and / or user application for display via the client device. 22. Systeem volgens conclusie 16 omvattende middelen voor het uitwisselen van gegevens met betrekking tot de inhoud van het snel toegankelijke geheugen en de toe- 10 passingsserver.22. System as claimed in claim 16, comprising means for exchanging data with regard to the content of the quickly accessible memory and the application server. 23. Systeem volgens een of meer van de conclusies 13-17 voor het uitvoeren van een werkwijze volgens een of meer van de conclusies 1-17. 15A system according to one or more of claims 13-17 for performing a method according to one or more of claims 1-17. 15 24. Computerprogrammatuur voor het uitvoeren van een werkwijze volgens een of meer van de voorgaande conclusies en/of voor gebruik in een systeem volgens een of meer van de voorgaande conclusies. 20 1033929Computer software for performing a method according to one or more of the preceding claims and / or for use in a system according to one or more of the preceding claims. 20 1033929
NL1033929A 2006-09-29 2007-06-04 Parallel user session streaming method, involves assembling data stream per session by applying encoded fragments that are suitable for assembling video data in predefined format and for application in images, to video data NL1033929C1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
NL1033929A NL1033929C1 (en) 2006-09-29 2007-06-04 Parallel user session streaming method, involves assembling data stream per session by applying encoded fragments that are suitable for assembling video data in predefined format and for application in images, to video data
JP2009530298A JP5936805B2 (en) 2006-09-29 2007-10-01 Method, system, and computer software for streaming parallel user sessions
PCT/NL2007/000245 WO2008044916A2 (en) 2006-09-29 2007-10-01 Method for streaming parallel user sessions, system and computer software
EP07834561A EP2105019A2 (en) 2006-09-29 2007-10-01 Method for streaming parallel user sessions, system and computer software
US12/443,571 US20100146139A1 (en) 2006-09-29 2007-10-01 Method for streaming parallel user sessions, system and computer software
EP12163712.8A EP2477414A3 (en) 2006-09-29 2007-10-01 Method for assembling a video stream, system and computer software
EP12163713.6A EP2487919A3 (en) 2006-09-29 2007-10-01 Method for providing media content to a client device, system and computer software

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
NL1032594A NL1032594C2 (en) 2006-09-29 2006-09-29 Parallel user session streaming method, involves assembling data stream per session by applying encoded fragments that are suitable for assembling video data in predefined format and for application in images, to video data
NL1032594 2006-09-29
NL1033929A NL1033929C1 (en) 2006-09-29 2007-06-04 Parallel user session streaming method, involves assembling data stream per session by applying encoded fragments that are suitable for assembling video data in predefined format and for application in images, to video data
NL1033929 2007-06-04

Publications (1)

Publication Number Publication Date
NL1033929C1 true NL1033929C1 (en) 2008-04-01

Family

ID=39461980

Family Applications (1)

Application Number Title Priority Date Filing Date
NL1033929A NL1033929C1 (en) 2006-09-29 2007-06-04 Parallel user session streaming method, involves assembling data stream per session by applying encoded fragments that are suitable for assembling video data in predefined format and for application in images, to video data

Country Status (1)

Country Link
NL (1) NL1033929C1 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021541B2 (en) 2010-10-14 2015-04-28 Activevideo Networks, Inc. Streaming digital video between video devices using a cable television system
US9042454B2 (en) 2007-01-12 2015-05-26 Activevideo Networks, Inc. Interactive encoded content system including object models for viewing on a remote device
US9077860B2 (en) 2005-07-26 2015-07-07 Activevideo Networks, Inc. System and method for providing video content associated with a source image to a television in a communication network
US9123084B2 (en) 2012-04-12 2015-09-01 Activevideo Networks, Inc. Graphical application integration with MPEG objects
US9204203B2 (en) 2011-04-07 2015-12-01 Activevideo Networks, Inc. Reduction of latency in video distribution networks using adaptive bit rates
US9219922B2 (en) 2013-06-06 2015-12-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
US9294785B2 (en) 2013-06-06 2016-03-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
US9326047B2 (en) 2013-06-06 2016-04-26 Activevideo Networks, Inc. Overlay rendering of user interface onto source video
US9788029B2 (en) 2014-04-25 2017-10-10 Activevideo Networks, Inc. Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks
US9800945B2 (en) 2012-04-03 2017-10-24 Activevideo Networks, Inc. Class-based intelligent multiplexing over unmanaged networks
US9826197B2 (en) 2007-01-12 2017-11-21 Activevideo Networks, Inc. Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
US10275128B2 (en) 2013-03-15 2019-04-30 Activevideo Networks, Inc. Multiple-mode system and method for providing user selectable video content
US10409445B2 (en) 2012-01-09 2019-09-10 Activevideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9077860B2 (en) 2005-07-26 2015-07-07 Activevideo Networks, Inc. System and method for providing video content associated with a source image to a television in a communication network
US9355681B2 (en) 2007-01-12 2016-05-31 Activevideo Networks, Inc. MPEG objects and systems and methods for using MPEG objects
US9042454B2 (en) 2007-01-12 2015-05-26 Activevideo Networks, Inc. Interactive encoded content system including object models for viewing on a remote device
US9826197B2 (en) 2007-01-12 2017-11-21 Activevideo Networks, Inc. Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
US9021541B2 (en) 2010-10-14 2015-04-28 Activevideo Networks, Inc. Streaming digital video between video devices using a cable television system
US9204203B2 (en) 2011-04-07 2015-12-01 Activevideo Networks, Inc. Reduction of latency in video distribution networks using adaptive bit rates
US10409445B2 (en) 2012-01-09 2019-09-10 Activevideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television
US9800945B2 (en) 2012-04-03 2017-10-24 Activevideo Networks, Inc. Class-based intelligent multiplexing over unmanaged networks
US10506298B2 (en) 2012-04-03 2019-12-10 Activevideo Networks, Inc. Class-based intelligent multiplexing over unmanaged networks
US10757481B2 (en) 2012-04-03 2020-08-25 Activevideo Networks, Inc. Class-based intelligent multiplexing over unmanaged networks
US9123084B2 (en) 2012-04-12 2015-09-01 Activevideo Networks, Inc. Graphical application integration with MPEG objects
US10275128B2 (en) 2013-03-15 2019-04-30 Activevideo Networks, Inc. Multiple-mode system and method for providing user selectable video content
US11073969B2 (en) 2013-03-15 2021-07-27 Activevideo Networks, Inc. Multiple-mode system and method for providing user selectable video content
US9294785B2 (en) 2013-06-06 2016-03-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
US9326047B2 (en) 2013-06-06 2016-04-26 Activevideo Networks, Inc. Overlay rendering of user interface onto source video
US9219922B2 (en) 2013-06-06 2015-12-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
US10200744B2 (en) 2013-06-06 2019-02-05 Activevideo Networks, Inc. Overlay rendering of user interface onto source video
US9788029B2 (en) 2014-04-25 2017-10-10 Activevideo Networks, Inc. Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks

Similar Documents

Publication Publication Date Title
NL1033929C1 (en) Parallel user session streaming method, involves assembling data stream per session by applying encoded fragments that are suitable for assembling video data in predefined format and for application in images, to video data
NL1032594C2 (en) Parallel user session streaming method, involves assembling data stream per session by applying encoded fragments that are suitable for assembling video data in predefined format and for application in images, to video data
US20100146139A1 (en) Method for streaming parallel user sessions, system and computer software
US11184683B2 (en) Methods, devices, and computer programs for improving rendering display during streaming of timed media data
US8638337B2 (en) Image frame buffer management
CN102224733B (en) System and method for processing video files
Hamza et al. Adaptive streaming of interactive free viewpoint videos to heterogeneous clients
US9282347B2 (en) Controlled rate VOD server
US11785290B2 (en) Media access function for scene descriptions
JP5734699B2 (en) Super-resolution device for distribution video
US20210014547A1 (en) System for distributing an audiovisual content
CN112188285A (en) Video transcoding method, device, system and storage medium
Deneke Scalable distributed video transcoding architecture
CN116636224A (en) System and method for replacing networking application program service
CN113132756A (en) Video coding and transcoding method
Pereira et al. Video processing in the Cloud
US11523156B2 (en) Method and system for distributing an audiovisual content
EP4325871A1 (en) Information processing device and method
Coelho Low Cost Transcoder
Borges et al. A systematic literature review on video transcoding acceleration: challenges, solutions, and trends
Tang et al. Real Time Broadcasting Method of Sports Events Using Wireless Network Communication Technology
Gollapudi et al. A Novel and Optimal approach for Multimedia Cloud Storage and Delivery to reduce Total Cost of Ownership

Legal Events

Date Code Title Description
V4 Lapsed because of reaching the maximum lifetime of a patent

Effective date: 20130604