NL1033929C1 - Werkwijze voor het streamen van parallelle gebruikerssessies, systeem en computerprogrammatuur. - Google Patents

Werkwijze voor het streamen van parallelle gebruikerssessies, systeem en computerprogrammatuur. 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
English (en)
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/nl
Application filed by Avinity Systems B V filed Critical Avinity Systems B V
Priority to NL1033929A priority Critical patent/NL1033929C1/nl
Priority to PCT/NL2007/000245 priority patent/WO2008044916A2/en
Priority to EP12163712.8A priority patent/EP2477414A3/en
Priority to US12/443,571 priority patent/US20100146139A1/en
Priority to EP07834561A priority patent/EP2105019A2/en
Priority to JP2009530298A priority patent/JP5936805B2/ja
Priority to EP12163713.6A priority patent/EP2487919A3/en
Application granted granted Critical
Publication of NL1033929C1 publication Critical patent/NL1033929C1/nl

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

Description

WERKWIJZE VOOR HET STREAMEN VAN PARALLELLE GEBRUIKERSSESSIES , SYSTEEM EN COMPUTERPROGRAMMATUUR.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
8
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.
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.
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.
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.
9
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.
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.
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.
- 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.
10 Vanaf de backendserver 5 worden bijvoorbeeld 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 .
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.
Deze conflictresolutie wordt nader beschreven aan de hand van de beschrijving van de fragmentsamensteller en de werking daarvan.
19
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.
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 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 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 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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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 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 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.
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.
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.
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.
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.
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.
27
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.
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 .
28
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Daarnaast is het voordelig vanuit netwerkoogpunt om dit bandbreedtegebruik door een zo beperkt mogelijk deel van het netwerk te sturen.
36
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.
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.
20 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.
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.
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.
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. 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.
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.
7. Werkwijze volgens een of meer van de voorgaande conclusies omvattende stappen voor het toevoegen van een tag aan de gecodeerde fragmenten.
8. Werkwijze volgens conclusie 7 omvattende stap-25 pen voor het terughalen van gecodeerde fragmenten op basis van de 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.
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.
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.
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.
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.
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.
15. Werkwijze volgens conclusie 13 of 14, omvattende stappen volgens een of meer van de conclusies 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.
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.
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. 25
19. Systeem volgens conclusie 13 omvattende een snel toegankelijk geheugen, zoals een cachegeheugen, voor het tijdelijk opslaan van de gecodeerde fragmenten.
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.
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.
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.
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. 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 1033929
NL1033929A 2006-09-29 2007-06-04 Werkwijze voor het streamen van parallelle gebruikerssessies, systeem en computerprogrammatuur. NL1033929C1 (nl)

Priority Applications (7)

Application Number Priority Date Filing Date Title
NL1033929A NL1033929C1 (nl) 2006-09-29 2007-06-04 Werkwijze voor het streamen van parallelle gebruikerssessies, systeem en computerprogrammatuur.
PCT/NL2007/000245 WO2008044916A2 (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
US12/443,571 US20100146139A1 (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
JP2009530298A JP5936805B2 (ja) 2006-09-29 2007-10-01 パラレルユーザセッションをストリーミングするための方法、システム、およびコンピュータソフトウェア
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
NL1032594 2006-09-29
NL1032594A NL1032594C2 (nl) 2006-09-29 2006-09-29 Werkwijze voor het streamen van parallelle gebruikerssessies, systeem en computerprogrammatuur.
NL1033929A NL1033929C1 (nl) 2006-09-29 2007-06-04 Werkwijze voor het streamen van parallelle gebruikerssessies, systeem en computerprogrammatuur.
NL1033929 2007-06-04

Publications (1)

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

Family

ID=39461980

Family Applications (1)

Application Number Title Priority Date Filing Date
NL1033929A NL1033929C1 (nl) 2006-09-29 2007-06-04 Werkwijze voor het streamen van parallelle gebruikerssessies, systeem en computerprogrammatuur.

Country Status (1)

Country Link
NL (1) NL1033929C1 (nl)

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 (nl) Werkwijze voor het streamen van parallelle gebruikerssessies, systeem en computerprogrammatuur.
NL1032594C2 (nl) Werkwijze voor het streamen van parallelle gebruikerssessies, systeem en computerprogrammatuur.
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
JP7205485B2 (ja) Vrビデオ用に画像解像度を最適化してビデオストリーミングの帯域幅を最適化する画像処理のための方法及びストリーミングサーバ
US8638337B2 (en) Image frame buffer management
CN102224733B (zh) 用于处理视频文件的系统和方法
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 (ja) 配信映像の超解像化装置
US20210014547A1 (en) System for distributing an audiovisual content
CN104854872A (zh) 发送装置、传输方法、接收装置以及接收方法
CN112188285A (zh) 视频转码方法、装置、系统及存储介质
CN116636224A (zh) 可替代联网应用程序服务的系统和方法
CN113132756A (zh) 视频编转码方法
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