[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

FR2832582A1 - Multimedia data coding process for domestic networks selects parameters using quality assessment - Google Patents

Multimedia data coding process for domestic networks selects parameters using quality assessment Download PDF

Info

Publication number
FR2832582A1
FR2832582A1 FR0115093A FR0115093A FR2832582A1 FR 2832582 A1 FR2832582 A1 FR 2832582A1 FR 0115093 A FR0115093 A FR 0115093A FR 0115093 A FR0115093 A FR 0115093A FR 2832582 A1 FR2832582 A1 FR 2832582A1
Authority
FR
France
Prior art keywords
data
elementary
coding
memory capacity
coded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR0115093A
Other languages
French (fr)
Inventor
Lilian Labelle
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR0115093A priority Critical patent/FR2832582A1/en
Priority to US10/495,920 priority patent/US7355530B2/en
Priority to AU2002353301A priority patent/AU2002353301A1/en
Priority to PCT/IB2002/005281 priority patent/WO2003045068A2/en
Priority to EP02788322A priority patent/EP1446955A2/en
Publication of FR2832582A1 publication Critical patent/FR2832582A1/en
Priority to US11/933,847 priority patent/US7439881B2/en
Withdrawn legal-status Critical Current

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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6582Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

A multimedia data coding process evaluates coding memory (E403) requirements and unit quality (E407) for different coding parameters from comparison of coded (E405) and decoded (E406) data.

Description

<Desc/Clms Page number 1> <Desc / Clms Page number 1>

La présente invention concerne un procédé de détermination d'au moins un paramètre de codage de données numériques multimédia organisées en unités élémentaires de données destinées à être codées selon au moins un mode de codage.  The present invention relates to a method for determining at least one encoding parameter of multimedia digital data organized in elementary data units to be coded according to at least one coding mode.

L'avancement technologique des appareils de communication numériques tels que les téléviseurs, les micro-ordinateurs de poche, les microordinateurs classiques ou tout autre appareil miniaturisé est tel que, dans les années à venir, il sera très probablement possible d'échanger des données de type multimédia et, par exemple, audio et/ou vidéo entre ces différents appareils.  The technological advancement of digital communication devices such as televisions, pocket PCs, conventional microcomputers or any other miniaturized device is such that, in the coming years, it will most likely be possible to exchange data from one another. multimedia type and, for example, audio and / or video between these different devices.

Des études de marché montrent, par ailleurs, que les utilisateurs sont prêts à acheter de tels appareils de communication à condition que le prix ne soit pas trop excessif et, surtout, que les services rendus soient de bonne qualité.  Market research also shows that users are willing to buy such communication devices as long as the price is not too excessive and, above all, the services provided are of good quality.

Suite à l'identification de ce nouveau marché, de nombreuses études ont été menées concernant la miniaturisation des composants électroniques, de manière à obtenir des appareils ayant des capacités de mémoire et de calcul élevées.  Following the identification of this new market, numerous studies have been conducted on the miniaturization of electronic components, in order to obtain devices having high memory and computing capacity.

En outre, de nombreux organismes de normalisation ont mis en place des standards permettant d'unifier les échanges de données entre ces appareils aux caractéristiques différentes. Ces standards, tels que ceux de la famille IEEE 802, permettent à la fois la mise en oeuvre et la gestion du transfert des données via un réseau particulier.  In addition, many standardization bodies have established standards to unify the exchange of data between these devices with different characteristics. These standards, such as those of the IEEE 802 family, allow both the implementation and management of data transfer via a particular network.

Le standard IEEE 802.11 et son homologue européen HYPERLAN sont dédiés aux réseaux locaux sans fil. Ils sont particulièrement étudiés actuellement  The IEEE 802.11 standard and its European counterpart HYPERLAN are dedicated to wireless LANs. They are particularly studied now

<Desc/Clms Page number 2><Desc / Clms Page number 2>

car ce sont des réseaux larges bandes permettant de transmettre des données audio et/ou vidéo entre deux machines qui sont géographiquement proches.  because they are broadband networks for transmitting audio and / or video data between two machines that are geographically close.

Ces standards sont donc particulièrement adaptés pour développer des réseaux locaux sans fil à l'intérieur des habitations.  These standards are therefore particularly suitable for developing wireless LANs inside homes.

Les solutions techniques étudiées actuellement dans le cadre des standards susvisés appliqués aux réseaux locaux domestiques permettent de transmettre des données numériques soit entre une machine dite serveur et une machine dite client (transmission point à point), soit entre le serveur et un groupe de clients, soit encore entre le serveur et plusieurs clients (communication multi-points) et ce, sans aucun fil.  The technical solutions currently studied in the context of the aforementioned standards applied to the local home networks make it possible to transmit digital data either between a so-called server machine and a so-called client machine (point-to-point transmission), or between the server and a group of clients, again between the server and several clients (multi-point communication) without any wires.

Dans cet environnement, les données sont stockées sur le serveur qui centralise toutes les communications avec le ou les clients. Ce serveur peut également servir de passerelle avec le monde extérieur (Internet, télévision, caméscope...).  In this environment, the data is stored on the server that centralizes all communications with the client (s). This server can also serve as a gateway to the outside world (Internet, television, camcorder ...).

Il convient de noter que les réseaux locaux domestiques peuvent être de nature hétérogène, c'est-à-dire qu'ils peuvent, par exemple, être pour partie constitués de liaisons sans fil et pour partie de liaisons filaires.  It should be noted that home local area networks may be heterogeneous in nature, that is, they may, for example, be partly wireless and partly wired.

Si de nombreux projets étudient la mise en oeuvre de services autour de la télévision interactive et l'échange d'informations sur l'Internet, peu d'entre eux traitent des problèmes liés à la mise en oeuvre de réseaux locaux domestiques, à savoir la mise en place de solutions permettant d'obtenir une qualité de services acceptable.  While many projects are studying the implementation of interactive television services and the exchange of information on the Internet, few of them address issues related to the implementation of local home networks, namely implementation of solutions to obtain an acceptable quality of service.

Le serveur étant relié au monde extérieur, les données stockées sont de tailles diverses. Le transport de ces données à travers un réseau local n'est pas un service aisé à mettre en place.  Since the server is connected to the outside world, the data stored is of various sizes. Transporting this data over a local network is not an easy service to set up.

On connaît un système de communication d'après l'article"Adapting multimedia Internet content for Universal Access"de R. Mohan, J. Smith, C-S. Li, IEEE Transactions on Multimedia, March 1999, qui prévoit de constituer une base de données répertoriant les différentes catégories d'appareils de communication qui peuvent se connecter à un serveur.  A communication system is known from the article "Adapting Multimedia Internet Content for Universal Access" by R. Mohan, J. Smith, C-S. Li, IEEE Transactions on Multimedia, March 1999, which plans to build a database listing the different categories of communication devices that can connect to a server.

<Desc/Clms Page number 3> <Desc / Clms Page number 3>

Pour chaque catégorie d'appareil, le système prend en compte la taille de l'écran de visualisation de cette catégorie d'appareil et la profondeur de couleurs que l'appareil peut supporter (nombre de bits par composante de couleur).  For each category of device, the system takes into account the size of the display screen of this category of device and the color depth that the device can support (number of bits per color component).

Ensuite, le système élabore à l'avance, pour chaque catégorie d'appareil et pour chacune des caractéristiques susvisées, une version codée pour chacune des vidéos que l'un ou l'autre des appareils pourrait demander au serveur.  Then, the system prepares in advance, for each category of device and for each of the above characteristics, a coded version for each of the videos that one or the other of the devices could ask the server.

Ces versions codées sont ensuite stockées par le serveur.  These coded versions are then stored by the server.

Ainsi, lorsque l'un des appareils émet une requête à destination du serveur, le système puise dans la base de données et sélectionne la version précodée des données adaptée à la catégorie de l'appareil et aux caractéristiques précitées.  Thus, when one of the devices sends a request to the server, the system taps into the database and selects the precoded version of the data adapted to the category of the device and the aforementioned characteristics.

Un tel système présente plusieurs inconvénients.  Such a system has several disadvantages.

En effet, le système doit effectuer de nombreux calculs pour élaborer les différentes versions codées, nécessitant ainsi une grande puissance de calcul et accaparant l'unité centrale de traitement pendant un temps relativement long.  Indeed, the system must perform many calculations to develop the different coded versions, thus requiring a large computing power and monopolizing the central processing unit for a relatively long time.

Par ailleurs, la constitution d'une telle base de données requiert l'utilisation de mémoires dotées de capacités de stockage élevées.  Moreover, the constitution of such a database requires the use of memories with high storage capacity.

En outre, le système décrit ci-dessus est figé dans la mesure où il ne peut pas prendre en compte un appareil de communication d'une nouvelle catégorie qui n'est pas répertoriée dans sa base de données.  In addition, the system described above is fixed in that it can not take into account a communication device of a new category that is not listed in its database.

La prise en compte d'une requête émanant d'une nouvelle catégorie d'appareil nécessiterait par exemple de répertorier dans la base de données cet appareil et, pour ce faire, d'élaborer des versions codées des différentes vidéos, de manière adaptée aux caractéristiques visées plus haut (taille de l'écran et profondeur de couleurs).  Taking into account a request from a new category of device would require for example to list in the database this device and, to do this, to develop coded versions of the different videos, adapted to the characteristics referred to above (screen size and color depth).

Toutefois, cette prise en compte irait encore dans le sens d'une augmentation de la capacité mémoire du système.  However, this consideration would still be in the sense of an increase in the memory capacity of the system.

La présente invention prévoit de remédier à au moins un des inconvénients précités en proposant un nouveau procédé et un nouveau dispositif de détermination d'au moins un paramètre de codage de données numériques multimédia qui soient tels que le paramètre de codage est déterminé de façon  The present invention provides for remedying at least one of the aforementioned drawbacks by proposing a new method and a new device for determining at least one multimedia digital data coding parameter which are such that the coding parameter is determined in such a way that

<Desc/Clms Page number 4><Desc / Clms Page number 4>

adaptée en fonction d'une capacité mémoire prédéterminée qui fait office de seuil ou de référence.  adapted according to a predetermined memory capacity which serves as threshold or reference.

En déterminant un ou plusieurs paramètres de codage de façon appropriée, les données codées avec ce ou ces paramètres nécessitent pour leur décodage une capacité mémoire totale inférieure ou égale à la capacité mémoire prédéterminée.  By determining one or more coding parameters appropriately, the data encoded with this or these parameters require for their decoding a total memory capacity less than or equal to the predetermined memory capacity.

La présente invention a ainsi pour objet un procédé de détermination d'au moins un paramètre de codage de données numériques multimédia organisées en unités élémentaires de données destinées à être codées selon au moins un mode de codage, caractérisé en ce que ledit procédé comporte les étapes suivantes : - détermination d'une capacité mémoire élémentaire nécessaire au décodage de chaque unité élémentaire de données codée selon un mode de codage différent, - détermination d'une capacité mémoire totale nécessaire au décodage d'un nombre donné d'unités élémentaires de données codées en fonction, d'une part, d'au moins une capacité mémoire élémentaire déterminée pour le décodage d'une unité élémentaire de données codée selon un mode de codage et, d'autre part, du nombre d'unités élémentaires de données codées selon chacun des modes de codage, - décision quant à la détermination d'au moins un paramètre de codage des données en fonction de la capacité mémoire totale précédemment déterminée et d'une capacité mémoire prédéterminée.  The subject of the present invention is thus a method for determining at least one coding parameter for multimedia digital data organized in elementary data units intended to be coded according to at least one coding mode, characterized in that said method comprises the steps following: - determination of an elementary memory capacity necessary for the decoding of each elementary data unit coded according to a different coding mode, - determination of a total memory capacity necessary for the decoding of a given number of elementary units of coded data as a function, on the one hand, of at least one elementary memory capacity determined for the decoding of an elementary unit of data encoded according to a coding mode and, on the other hand, the number of elementary data units coded according to each of the coding modes, - decision as to the determination of at least one coding parameter of the data s according to the total memory capacity previously determined and a predetermined memory capacity.

Corrélativement, l'invention vise un dispositif de détermination d'au moins un paramètre de codage de données numériques multimédia organisées en unités élémentaires de données destinées à être codées selon au moins un mode de codage, caractérisé en ce que ledit dispositif comporte : - des moyens de détermination d'une capacité mémoire élémentaire nécessaire au décodage de chaque unité élémentaire de données codée selon un mode de codage différent,  Correlatively, the invention relates to a device for determining at least one coding parameter of multimedia digital data organized in elementary data units intended to be coded according to at least one coding mode, characterized in that said device comprises: means for determining an elementary memory capacity necessary for the decoding of each elementary data unit coded according to a different coding mode,

<Desc/Clms Page number 5><Desc / Clms Page number 5>

- des moyens de détermination d'une capacité mémoire totale nécessaire au décodage d'un nombre donné d'unités élémentaires de données codées en fonction, d'une part, d'au moins une capacité mémoire élémentaire déterminée pour le décodage d'une unité élémentaire de données codée selon un mode de codage et, d'autre part, du nombre d'unités élémentaires de données codées selon chacun des modes de codage, - des moyens de décision quant à la détermination d'au moins un paramètre de codage des données en fonction de la capacité mémoire totale précédemment déterminée et d'une capacité mémoire prédéterminée.  means for determining a total memory capacity necessary for the decoding of a given number of elementary data units coded as a function, on the one hand, of at least one elementary memory capacity determined for the decoding of a unit coded coded data element and secondly the number of elementary data units coded according to each of the coding modes, - decision means for determining at least one coding parameter of the coding methods. data according to the previously determined total memory capacity and a predetermined memory capacity.

Ainsi, en déterminant la capacité mémoire totale nécessaire au décodage d'une pluralité d'unités élémentaires de données codées, l'invention permet de décider du choix du ou des paramètres de codage adaptés à une capacité mémoire prédéterminée.  Thus, by determining the total memory capacity necessary for the decoding of a plurality of elementary units of coded data, the invention makes it possible to decide on the choice of the coding parameter or parameters adapted to a predetermined memory capacity.

De ce fait, le ou les paramètres de codage ainsi déterminés permettent de coder les données de manière à ce que ces données codées nécessitent pour leur décodage, par exemple, une capacité mémoire totale inférieure ou égale à la capacité mémoire prédéterminée.  As a result, the coding parameter or parameters thus determined make it possible to code the data so that, for example, these coded data require, for their decoding, a total memory capacity less than or equal to the predetermined memory capacity.

Par exemple, le paramètre de codage qui a été utilisé pour le codage des données avant de déterminer la capacité mémoire totale peut se révéler satisfaisant ou non au vu de la capacité mémoire totale déterminée. Si ce paramètre n'est pas satisfaisant, il faudra alors déterminer un paramètre qui sera, cette fois-ci, adapté à la capacité mémoire totale prédéterminée.  For example, the encoding parameter that was used for encoding the data before determining the total memory capacity may or may not be satisfactory in view of the determined total memory capacity. If this parameter is not satisfactory, it will then be necessary to determine a parameter which will, this time, be adapted to the predetermined total memory capacity.

On notera que si un paramètre de codage est ajusté en fonction de la capacité mémoire totale prédéterminée, c'est parce qu'une modification de ce paramètre là a une influence sur la capacité mémoire totale qui est nécessaire au décodage des données codées avec ledit paramètre.  Note that if an encoding parameter is adjusted according to the predetermined total memory capacity, it is because a modification of this parameter has an influence on the total memory capacity which is necessary for the decoding of the data encoded with said parameter. .

L'invention ne nécessite pas une capacité de stockage élevée comme dans l'art antérieur précité puisqu'on ne mémorise pas, à l'avance, plusieurs versions de données codées en fonction de catégories d'appareil de communication différentes.  The invention does not require a high storage capacity as in the aforementioned prior art since it does not memorize, in advance, several versions of coded data according to different categories of communication device.

De plus, l'unité de traitement du dispositif selon l'invention n'est pas accaparée par de long calculs pendant un temps relativement long, comme c'est le  In addition, the processing unit of the device according to the invention is not monopolized by long calculations for a relatively long time, as it is the

<Desc/Clms Page number 6><Desc / Clms Page number 6>

cas avec le système de l'art antérieur qui doit constituer une base de données de versions pré-codées.  case with the system of the prior art which must constitute a database of pre-coded versions.

Plus particulièrement, lorsque plusieurs modes de codage sont utilisés pour le codage du nombre donné d'unités élémentaires de données, l'étape de détermination de la capacité mémoire totale est plus particulièrement effectuée en fonction, d'une part, de la capacité mémoire élémentaire déterminée pour le décodage de chaque unité élémentaire de données codée selon un mode de codage différent et, d'autre part, du nombre d'unités élémentaires de données codées selon chacun des modes de codage.  More particularly, when several coding modes are used for the coding of the given number of elementary data units, the step of determining the total memory capacity is more particularly performed as a function, on the one hand, of the elementary memory capacity determined for the decoding of each elementary data unit encoded according to a different coding mode and, secondly, the number of elementary data units encoded according to each of the coding modes.

Suivant une autre approche, lorsque plusieurs modes de codage sont utilisés pour le codage du nombre donné d'unités élémentaires de données, ledit procédé comporte une étape supplémentaire de sélection de la capacité mémoire élémentaire la plus élevée parmi les différentes capacités mémoires élémentaires déterminées pour chacun des modes de codage.  According to another approach, when several coding modes are used for the coding of the given number of elementary data units, said method comprises an additional step of selecting the highest elementary memory capacity among the different elementary memory capacities determined for each one. coding modes.

Suivant cette approche, l'étape de détermination de la capacité mémoire totale est plus particulièrement effectuée en fonction, d'une part, de la capacité mémoire élémentaire la plus élevée précédemment sélectionnée et, d'autre part, du nombre donné d'unités élémentaires de données codées.  According to this approach, the step of determining the total memory capacity is more particularly performed as a function, on the one hand, of the highest elementary memory capacity previously selected and, on the other hand, of the given number of elementary units. coded data.

Ainsi, au lieu de prendre en compte, pour chaque unité élémentaire, la capacité mémoire élémentaire correspondante qui a été déterminée en relation avec son mode de codage propre, on se place dans le cas le plus défavorable en adoptant à chaque fois la capacité mémoire élémentaire la plus élevée.  Thus, instead of taking into account, for each elementary unit, the corresponding elementary memory capacity which has been determined in relation to its own coding mode, it is placed in the most unfavorable case by adopting each time the elementary memory capacity the highest.

Ceci permet, d'une part, de simplifier la détermination de la capacité mémoire totale et, d'autre part, de s'assurer qu'il n'y aura pas de problème de capacité de stockage de données lors des opérations de décodage.  This makes it possible, on the one hand, to simplify the determination of the total memory capacity and, on the other hand, to ensure that there will be no problem of data storage capacity during the decoding operations.

Dans le cas où les étapes de détermination de la capacité mémoire élémentaire pour chaque mode de codage, de détermination de la capacité mémoire totale et de décision sont effectuées dans un premier appareil de communication relié à un second appareil de communication par un réseau de communication, l'invention permet de s'adapter facilement et dynamiquement à des appareils de communication non encore reliés au premier appareil, mais qui peuvent y être reliés ultérieurement.  In the case where the steps of determination of the elementary memory capacity for each mode of coding, determination of the total memory capacity and decision are made in a first communication device connected to a second communication device by a communication network, the invention makes it possible to adapt easily and dynamically to communication devices not yet connected to the first device, but which can be connected thereafter.

<Desc/Clms Page number 7> <Desc / Clms Page number 7>

Selon une caractéristique, préalablement à l'étape de décision, le procédé comporte une étape de comparaison entre la capacité mémoire totale déterminée pour le décodage du nombre donné d'unités élémentaires de données codées et la capacité mémoire disponible dans le second appareil de communication pour le décodage de ces données.  According to one characteristic, prior to the decision step, the method comprises a step of comparison between the total memory capacity determined for decoding the given number of coded data elementary units and the memory capacity available in the second communication device for decoding of these data.

La capacité mémoire prédéterminée correspond ainsi à celle du second appareil de communication.  The predetermined memory capacity thus corresponds to that of the second communication device.

Le procédé selon l'invention permet ainsi d'adapter le codage des données effectué dans le premier appareil à la capacité mémoire disponible dans le second appareil.  The method according to the invention thus makes it possible to adapt the coding of the data carried out in the first apparatus to the memory capacity available in the second apparatus.

Selon une autre caractéristique, préalablement à l'étape de comparaison, le procédé comporte une étape d'obtention par le premier appareil de communication de la capacité mémoire disponible dans le second appareil de communication.  According to another characteristic, prior to the comparison step, the method comprises a step of obtaining by the first communication device the available memory capacity in the second communication device.

Ainsi, les informations sur la capacité mémoire disponible dans le second appareil de communication sont transmises au premier appareil avant l'étape de comparaison visée plus haut.  Thus, the information on the memory capacity available in the second communication device is transmitted to the first device before the comparison step referred to above.

Si un ou plusieurs appareils de communication sont reliés ultérieurement au premier appareil, il suffit que les informations sur leurs capacités mémoires respectives soient transmises au premier appareil pour que celui-ci puisse adapter le codage des données de manière appropriée pour chaque appareil.  If one or more communication devices are later connected to the first device, it is sufficient that the information on their respective memory capacity is transmitted to the first device so that it can adapt the data encoding appropriately for each device.

Selon une variante de réalisation, le procédé comporte en outre les étapes suivantes : - détermination du nombre élémentaire d'opérations à effectuer pour décoder chaque unité élémentaire de données codée selon un mode de codage différent, - détermination du nombre total d'opérations à effectuer pendant un intervalle de temps prédéterminé pour décoder une pluralité d'unités élémentaires de données codées en fonction, d'une part, du nombre élémentaire précédemment déterminé et, d'autre part, du nombre d'unités élémentaires codées selon chacun des modes de codage.  According to an alternative embodiment, the method further comprises the following steps: determining the basic number of operations to be performed to decode each elementary unit of data encoded according to a different coding mode, determining the total number of operations to be performed during a predetermined time interval for decoding a plurality of elementary units of data coded according to, on the one hand, the previously determined elementary number and, on the other hand, the number of elementary units coded according to each of the coding modes .

<Desc/Clms Page number 8> <Desc / Clms Page number 8>

Ainsi, la décision quant à la détermination dudit au moins un paramètre de codage est également prise en fonction du nombre total d'opérations précédemment déterminé et d'un nombre total d'opérations prédéterminé.  Thus, the decision as to the determination of said at least one coding parameter is also made based on the total number of operations previously determined and a predetermined total number of operations.

Selon une caractéristique, les étapes de détermination du nombre élémentaire d'opérations, de détermination du nombre total d'opérations pendant un intervalle de temps prédéterminé et de décision sont effectuées dans le premier appareil de communication.  According to one characteristic, the steps of determining the basic number of operations, determining the total number of operations during a predetermined time interval and decision are performed in the first communication device.

Selon une caractéristique, préalablement à l'étape de décision, le procédé comporte une étape de comparaison entre le nombre total d'opérations déterminé pendant l'intervalle de temps et le nombre total d'opérations qui pourraient être effectuées, pendant ce même intervalle de temps, dans le second appareil de communication.  According to one characteristic, prior to the decision step, the method comprises a step of comparing the total number of operations determined during the time interval with the total number of operations that could be performed, during the same interval of time. time, in the second communication device.

La complexité de décodage prédéterminée correspond ainsi à celle du second appareil de communication.  The predetermined decoding complexity thus corresponds to that of the second communication device.

Le procédé selon l'invention permet ainsi d'adapter également le codage des données effectué dans le premier appareil à la capacité de calcul du second appareil en plus de sa capacité mémoire totale.  The method according to the invention thus makes it possible also to adapt the coding of the data carried out in the first apparatus to the computing capacity of the second apparatus in addition to its total memory capacity.

Selon une autre caractéristique, préalablement à l'étape de comparaison, le procédé comporte une étape d'obtention par le premier appareil de communication du nombre total d'opérations pouvant être effectuées par le second appareil de communication pendant l'intervalle de temps prédéterminé.  According to another characteristic, prior to the comparison step, the method comprises a step of obtaining by the first communication device the total number of operations that can be performed by the second communication device during the predetermined time interval.

Ainsi, les informations sur la capacité de calcul du second appareil de communication sont transmises au premier appareil avant l'étape de comparaison visée plus haut.  Thus, the information on the calculation capacity of the second communication device is transmitted to the first device before the comparison step referred to above.

Si un ou plusieurs appareils de communication sont reliés ultérieurement au premier appareil, il suffit que les informations sur leurs capacités de calcul respectives soient transmises au premier appareil pour que celui-ci puisse adapter le codage des données de manière appropriée pour chaque appareil.  If one or more communication devices are later connected to the first device, it is sufficient that the information on their respective calculation capabilities are transmitted to the first device so that it can adapt the coding of the data appropriately for each device.

Par ailleurs, on peut en outre prendre la décision quant à la détermination du ou des paramètres de codage en tenant compte de caractéristiques du réseau de communication telles que, par exemple, la bande passante disponible sur ce réseau.  Furthermore, it is also possible to make the decision as to the determination of the coding parameter or parameters taking into account characteristics of the communication network such as, for example, the bandwidth available on this network.

<Desc/Clms Page number 9> <Desc / Clms Page number 9>

Selon une caractéristique, le procédé comporte une étape d'estimation de la qualité d'au moins une unité élémentaire de données en comparant ladite au moins une unité élémentaire de données codée avec le paramètre de codage déterminé et ladite au moins une unité élémentaire de données non codée.  According to one characteristic, the method comprises a step of estimating the quality of at least one elementary unit of data by comparing said at least one elementary unit of coded data with the determined coding parameter and said at least one elementary unit of data. not coded.

On est ainsi capable d'élaborer une version de l'unité élémentaire de données adaptée à la capacité mémoire prédéterminée et, éventuellement, à la complexité de décodage prédéterminée et qui permet d'obtenir des données, une fois décodées, de bonne qualité, c'est-à-dire fidèles à l'unité élémentaire de données non codée.  It is thus possible to develop a version of the elementary data unit adapted to the predetermined memory capacity and possibly to the predetermined decoding complexity and which makes it possible to obtain data, once decoded, of good quality. that is, true to the uncoded elementary data unit.

On notera que dans le cas d'une transmission de données entre un premier et un deuxième appareil de communication, on peut ainsi fournir au deuxième appareil une version de l'unité élémentaire de données de bonne qualité qui est adaptée à la capacité mémoire disponible dans le deuxième appareil et, éventuellement, à la capacité de calcul de ce deuxième appareil.  It should be noted that in the case of data transmission between a first and a second communication apparatus, it is thus possible to provide the second apparatus with a version of the elementary unit of data of good quality which is adapted to the available memory capacity in the second unit. the second device and possibly the computing capacity of the second device.

Selon une autre caractéristique, lorsque plusieurs paramètres de codage ont été déterminés, le procédé comporte les étapes suivantes : - estimation de la qualité d'au moins une unité élémentaire de données pour chaque combinaison de paramètres de codage déterminée, - sélection de la meilleure qualité parmi les différentes qualités estimées pour les différents paramètres de codage.  According to another characteristic, when a plurality of coding parameters have been determined, the method comprises the following steps: - estimation of the quality of at least one elementary unit of data for each combination of coding parameters determined, - selection of the best quality among the different qualities estimated for the different coding parameters.

On peut ainsi sélectionner à l'aide d'un autre critère une combinaison de paramètres de codage parmi plusieurs combinaisons possibles, dans chacune desquelles un ou plusieurs paramètres de codage ont été déterminés de façon adaptée à la capacité mémoire totale prédéterminée et, éventuellement, à la complexité de décodage prédéterminée.  It is thus possible to select, using another criterion, a combination of coding parameters from among several possible combinations, in each of which one or more coding parameters have been determined in a manner adapted to the predetermined total memory capacity and, optionally, to the predetermined decoding complexity.

Selon encore une autre caractéristique, le procédé comporte les étapes suivantes : - codage d'au moins une unité élémentaire de données avec le paramètre de codage déterminé, - décodage de ladite au moins une unité élémentaire de données codée,  According to yet another characteristic, the method comprises the following steps: coding of at least one elementary unit of data with the determined coding parameter; decoding of said at least one coded elementary data unit;

<Desc/Clms Page number 10><Desc / Clms Page number 10>

- estimation de la qualité de ladite au moins une unité élémentaire de données en comparant cette au moins une unité élémentaire de données non codée avec celle précédemment décodée.  estimating the quality of said at least one elementary unit of data by comparing this at least one elementary unit of uncoded data with that previously decoded.

Cette méthode d'estimation de la qualité est particulièrement simple à mettre en oeuvre.  This method of estimating the quality is particularly simple to implement.

L'invention concerne également un appareil de communication comportant un dispositif tel que brièvement exposé ci-dessus.  The invention also relates to a communication apparatus comprising a device as briefly described above.

Selon un autre aspect, l'invention vise aussi : - un moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé selon l'invention tel que celui exposé brièvement ci-dessus, et - un moyen de stockage d'informations amovible, partiellement ou totalement, lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé selon l'invention tel que celui brièvement exposé ci-dessus.  According to another aspect, the invention also aims at: a computer-readable information storage means or a microprocessor comprising code instructions of a computer program for executing the steps of the method according to the invention as briefly set forth above, and - a partially or fully removable computer-readable information storage medium or microprocessor having code instructions of a computer program for executing the steps of process according to the invention such as that briefly described above.

Selon encore un autre aspect, l'invention vise un programme d'ordinateur chargeable dans un appareil programmable, comportant des séquences d'instructions ou portions de code logiciel pour mettre en oeuvre des étapes du procédé selon l'invention tel que brièvement exposé ci-dessus, lorsque ledit programme d'ordinateur est chargé et exécuté sur l'appareil programmable.  According to yet another aspect, the invention relates to a computer program loadable in a programmable apparatus, comprising sequences of instructions or portions of software code to implement steps of the method according to the invention as briefly discussed below. above, when said computer program is loaded and executed on the programmable apparatus.

Les caractéristiques et avantages relatifs au dispositif, à l'appareil de communication comportant un tel dispositif, aux moyens de stockage d'informations et au programme d'ordinateur étant les mêmes que ceux exposés ci-dessus concernant le procédé selon l'invention, ils ne seront pas rappelés ici.  The characteristics and advantages relating to the device, to the communication device comprising such a device, to the information storage means and to the computer program being the same as those described above concerning the method according to the invention, they will not be recalled here.

D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description qui va suivre, faite en référence aux dessins annexés, sur lesquels : - la figure 1 représente de manière schématique une architecture de communication de type client-serveur dans laquelle l'invention peut être mise en oeuvre ;  Other features and advantages of the present invention will emerge more clearly on reading the description which follows, made with reference to the appended drawings, in which: FIG. 1 schematically represents a client-server type communication architecture in which the invention can be implemented;

<Desc/Clms Page number 11><Desc / Clms Page number 11>

- la figure 2 représente un algorithme de traitement de données vidéo selon l'invention ; - la figure 3a représente un algorithme de codage de données vidéo ; - la figure 3b représente un algorithme de décodage de données vidéo ; - la figure 4a représente un algorithme de détermination d'au moins un paramètre de codage de données vidéo selon l'invention et qui correspond à l'étape E208 de l'algorithme de la figure 2 ; - la figure 4b représente une variante de réalisation de l'algorithme de la figure 4a ; - la figure 5 est un mode de réalisation d'un appareil programmable mettant en oeuvre l'invention.  FIG. 2 represents a video data processing algorithm according to the invention; FIG. 3a represents a coding algorithm for video data; FIG. 3b represents a decoding algorithm for video data; FIG. 4a represents an algorithm for determining at least one video data coding parameter according to the invention and which corresponds to step E208 of the algorithm of FIG. 2; FIG. 4b represents an alternative embodiment of the algorithm of FIG. 4a; - Figure 5 is an embodiment of a programmable apparatus embodying the invention.

Sur la figure 1 est représenté une architecture de communication du type client-serveur dans laquelle l'invention est avantageusement mise en oeuvre ;
Sur cette figure, un premier appareil de communication 1 jouant le rôle du serveur est relié à un deuxième appareil de communication 2 qui est la machine client, par l'intermédiaire d'un réseau de communication 3 et d'une connexion qui est considérée comme étant établie.
FIG. 1 shows a communication architecture of the client-server type in which the invention is advantageously implemented;
In this figure, a first communication device 1 acting as the server is connected to a second communication device 2 which is the client machine, via a communication network 3 and a connection which is considered as being established.

Ce réseau est par exemple un réseau de communication local sans fil à l'intérieur d'une habitation.  This network is for example a wireless local communication network inside a home.

Plus particulièrement, ce réseau est conforme au standard IEEE802. 11.  More specifically, this network complies with the IEEE802 standard. 11.

Il s'agit dans l'exemple considéré d'une transmission point à point de données entre le serveur 1 et la machine client 2.  In the example under consideration, this is a point-to-point transmission of data between the server 1 and the client machine 2.

Cependant, le principe reste applicable au cas où le serveur est connecté simultanément à plusieurs machines client qui peuvent requérir du serveur des données numériques multimédia.  However, the principle remains applicable in the case where the server is simultaneously connected to several client machines that may require the digital multimedia data server.

Il convient toutefois, dans ce cas, de prendre en compte, d'une part, la gestion des processus d'adaptation et de transmission en parallèle des différentes versions adaptées des données demandées et, d'autre part, les accès multiples à la ou aux mémoires du serveur.  In this case, however, it is necessary to take into account, on the one hand, the management of the adaptation and parallel transmission processes of the different adapted versions of the requested data and, on the other hand, the multiple accesses to the or to the server memories.

<Desc/Clms Page number 12> <Desc / Clms Page number 12>

On notera que les données stockées dans le serveur peuvent avoir été reçues de l'environnement extérieur à l'habitation, par exemple, par un autre réseau de communication tel que l'Internet.  It should be noted that the data stored in the server may have been received from the environment outside the dwelling, for example, by another communication network such as the Internet.

Les données regroupées sous le terme données multimédia peuvent être, de manière non limitative, des images fixes, des vidéos, du son, des données de type texte (ex : documents graphiques...), des documents en langage HTML, des signaux issus d'un télécopieur ou d'une imprimante...  The data grouped under the term multimedia data may be, in a nonlimiting manner, still images, videos, sound, text data (eg graphic documents ...), documents in HTML, signals from a fax machine or a printer ...

Dans l'exemple de réalisation considéré, on considérera uniquement des données vidéo et celles-ci seront transmises sans perte sur le réseau 3.  In the exemplary embodiment considered, only video data will be considered and these will be transmitted without loss on the network 3.

Le dispositif selon l'invention permet d'adapter, d'une manière générale, le contenu des données demandées par une machine client aux caractéristiques de cette machine et, plus particulièrement, à la capacité mémoire disponible dans celle-ci.  The device according to the invention makes it possible, in a general manner, to adapt the content of the data requested by a client machine to the characteristics of this machine and, more particularly, to the memory capacity available therein.

La capacité mémoire d'une machine correspond à l'espace mémoire disponible dans cette machine pour le stockage de données.  The memory capacity of a machine is the amount of memory available in this machine for storing data.

Dans le cadre de l'invention, il s'agit plus particulièrement de l'espace mémoire disponible pour le stockage de données lors des opérations de décodage de ces données.  In the context of the invention, it is more particularly the memory space available for storing data during the decoding operations of these data.

Par ailleurs, on notera que le dispositif selon l'invention permet à titre de variante également d'adapter le contenu des données à la capacité mémoire et à la capacité de calcul de la machine client.  Furthermore, it will be noted that the device according to the invention also allows, as a variant, also to adapt the content of the data to the memory capacity and the computing capacity of the client machine.

On entend par capacité de calcul de la machine client le nombre d'opérations que cette machine peut effectuer dans un intervalle de temps prédéterminé correspondant, par exemple, à 1 seconde.  By computing capacity of the client machine is meant the number of operations that this machine can perform in a predetermined time interval corresponding, for example, to 1 second.

Le dispositif 4 selon l'invention est par exemple intégré au serveur 1 de la figure 1 et peut comporter des éléments électroniques et/ou des éléments logiciels.  The device 4 according to the invention is for example integrated with the server 1 of FIG. 1 and may comprise electronic elements and / or software elements.

Toutefois, le dispositif selon l'invention pourrait, par exemple, être confondu avec le serveur 1.  However, the device according to the invention could, for example, be confused with the server 1.

Le dispositif 4 comporte des unités 11 et 12 qui permettent respectivement de coder et décoder une vidéo.  The device 4 comprises units 11 and 12 which respectively make it possible to encode and decode a video.

<Desc/Clms Page number 13> <Desc / Clms Page number 13>

Le serveur comprend une unité 5 de stockage de données numériques telles que des vidéos.  The server includes a digital data storage unit 5 such as videos.

Les algorithmes des procédés de codage et décodage seront décrits respectivement en référence aux figures 3a et 3b.  The algorithms of the coding and decoding methods will be described respectively with reference to FIGS. 3a and 3b.

On notera que les vidéos sont créées, par exemple, par un caméscope numérique ou tout autre moyen d'acquisition de données ou bien sont transmises par un réseau de communication extérieur et sont stockées dans l'unité 5 qui peut être incluse ou non dans le dispositif 4.  It should be noted that the videos are created, for example, by a digital video camera or any other means of data acquisition or are transmitted by an external communication network and are stored in the unit 5 which may or may not be included in the device. device 4.

Cette unité peut être, par exemple, une base de données locale ou distribuée.  This unit can be, for example, a local or distributed database.

En outre, les vidéos sont stockées soit sous forme non compressée, par exemple suivant un format YUV, selon un mode préféré de l'invention, soit sous forme compressée, en utilisant le procédé de codage mis en oeuvre dans l'unité de codage 11.  In addition, the videos are stored either in uncompressed form, for example according to a YUV format, according to a preferred embodiment of the invention, or in compressed form, by using the coding method implemented in the coding unit 11. .

On notera qu'un format vidéo de type YUV signifie que la vidéo concernée possède trois composantes, la composante Y pour la luminance et les composantes U et V pour la chrominance.  It should be noted that a YUV video format means that the video concerned has three components, the Y component for the luminance and the U and V components for the chrominance.

Le dispositif 4 comprend également une unité de stockage 13 destinée à mémoriser de façon temporaire des données numériques et des vidéos codées, et une unité 14 de récupération de données caractéristiques des vidéos à partir de l'unité 5 de stockage.  The device 4 also includes a storage unit 13 for temporarily storing digital data and coded video, and a data recovery unit 14 characteristic of the videos from the storage unit 5.

Les données récupérées par l'unité 14 sont, soit les valeurs associées à chacun des pixels de chaque image d'une vidéo, soit les informations propres à cette vidéo, à savoir la taille du fichier vidéo, le chemin permettant d'accéder à cette vidéo et, dans le cas où la vidéo est stockée sous forme compressée, les paramètres de codage qui ont été utilisés pour coder cette vidéo.  The data recovered by the unit 14 are either the values associated with each of the pixels of each image of a video, or the information specific to this video, namely the size of the video file, the path to access this video. video and, in the case where the video is stored in compressed form, the encoding parameters that were used to encode that video.

Le dispositif 4 comprend également une unité 15 de récupération des caractéristiques de la machine client 2, à savoir la capacité mémoire et la résolution de son écran de visualisation.  The device 4 also comprises a unit 15 for recovering the characteristics of the client machine 2, namely the memory capacity and the resolution of its display screen.

Il convient de noter que ces caractéristiques peuvent être obtenues à la suite de la transmission par le dispositif 4 d'une requête spécifique.  It should be noted that these characteristics can be obtained as a result of the transmission by the device 4 of a specific request.

<Desc/Clms Page number 14> <Desc / Clms Page number 14>

Le dispositif 4 comprend, en outre, une unité 16 de récupération des caractéristiques du réseau 3, une unité 17 de détermination des paramètres de codage, et une unité 18 de transmission/réception de données numériques.  The device 4 further comprises a unit 16 for recovering the characteristics of the network 3, a unit 17 for determining the coding parameters, and a unit 18 for transmitting / receiving digital data.

L'unité 17 met en oeuvre le procédé de détermination des paramètres de codage qui sera décrit ultérieurement en référence à la figure 4.  The unit 17 implements the method for determining the coding parameters which will be described later with reference to FIG. 4.

L'unité 18 permet quant à elle d'effectuer la transmission de données à la machine client 2 à travers le réseau 3, ainsi que la réception de données provenant de la machine client.  The unit 18 makes it possible for it to transmit data to the client machine 2 through the network 3, as well as to receive data from the client machine.

Le dispositif 4 selon l'invention comporte également une unité de commande 19 des différentes opérations exécutées.  The device 4 according to the invention also comprises a control unit 19 of the various operations performed.

On notera que les différentes unités qui composent le dispositif selon l'invention et, plus généralement le serveur, résident sur la même machine.  It will be noted that the different units that make up the device according to the invention and, more generally, the server, reside on the same machine.

Cependant, il pourra être envisagé de distribuer ces unités sur plusieurs machines serveur et d'établir des communications entre ces différentes unités à travers le réseau de communication 3.  However, it may be envisaged to distribute these units on several server machines and to establish communications between these different units through the communication network 3.

Cette distribution des unités ne modifiant en rien la mise en oeuvre de l'invention, on considérera par la suite, pour des raisons de simplicité, que toutes les unités sont localisées sur la même machine que nous appelons serveur.  This distribution of units does not change the implementation of the invention, we will consider later, for reasons of simplicity, all units are located on the same machine that we call server.

La machine client 2 comporte une unité de transmission/réception de données numériques 20.  The client machine 2 comprises a digital data transmission / reception unit 20.

Cette unité 20 permet d'effectuer la transmission de données au dispositif 4, à travers le réseau 3, et la réception de données provenant du dispositif.  This unit 20 makes it possible to transmit data to the device 4, through the network 3, and to receive data from the device.

La machine client 2 comporte également une unité 21 de stockage de données numériques, une unité 22 de décodage identique à l'unité 12 du dispositif 4 et une unité de visualisation 23, permettant de visualiser des vidéos décodées.  The client machine 2 also comprises a digital data storage unit 21, a decoding unit 22 identical to the unit 12 of the device 4 and a display unit 23 for displaying decoded videos.

La figure 2 illustre un algorithme comportant différentes instructions ou portions de code logiciel correspondant à des étapes du procédé selon l'invention.  FIG. 2 illustrates an algorithm comprising different instructions or portions of software code corresponding to steps of the method according to the invention.

<Desc/Clms Page number 15> <Desc / Clms Page number 15>

Le programme informatique noté"Progr"qui est basé sur cet algorithme est mémorisé dans l'unité de stockage temporaire de données 13 de la figure 1 et exécuté par l'unité 17 sous le contrôle de l'unité de commande 19, ce qui permet ainsi de mettre en oeuvre le procédé selon l'invention.  The computer program noted "Progr" which is based on this algorithm is stored in the temporary data storage unit 13 of Figure 1 and executed by the unit 17 under the control of the control unit 19, which allows thus to implement the method according to the invention.

Ce programme est également stocké dans l'appareil de la figure 5.  This program is also stored in the apparatus of Figure 5.

L'algorithme de la figure 2 comporte une première étape notée E200 au cours de laquelle le dispositif 4 de la figure 1 et, plus particulièrement, l'unité de réception 18 reçoit une requête émise par la machine client 2 à partir de l'unité de transmission 20.  The algorithm of FIG. 2 comprises a first step denoted E200 during which the device 4 of FIG. 1 and, more particularly, the reception unit 18 receives a request sent by the client machine 2 from the unit transmission 20.

Par exemple, cette requête se présente sous la forme d'une chaîne de caractères permettant d'identifier de façon unique des données vidéo mémorisées dans l'unité de stockage 5 du serveur 1.  For example, this request is in the form of a character string for uniquely identifying video data stored in the storage unit 5 of the server 1.

Au cours de l'étape suivante E201, la requête provenant de la machine client 2 est transférée à l'unité de stockage temporaire 13 aux fins de mémorisation.  In the next step E201, the request from the client machine 2 is transferred to the temporary storage unit 13 for storage.

L'étape E201 est suivie d'une étape E202 au cours de laquelle un test est pratiqué afin de savoir si les données vidéo mémorisées dans l'unité de stockage 5 et faisant l'objet de la requête de la machine client sont disponibles sous forme compressée.  Step E201 is followed by a step E202 during which a test is performed to find out if the video data stored in the storage unit 5 and subject to the request of the client machine are available in the form compressed.

Dans l'affirmative, l'étape E202 est suivie d'une étape E203 au cours de laquelle l'unité de décodage 12 du dispositif de la figure 1 décode les données vidéo en fonction des paramètres de codage fournis, par exemple, par l'en-tête du train binaire mémorisé dans l'unité de stockage 5.  If so, the step E202 is followed by a step E203 during which the decoding unit 12 of the device of FIG. 1 decodes the video data according to the coding parameters provided, for example, by the header of the bitstream stored in the storage unit 5.

Une fois que le décodage des données vidéo a eu lieu, les données décodées présentes sous le format YUV ainsi que les paramètres de codage précités sont stockés dans l'unité de stockage 13.  Once the decoding of the video data has taken place, the decoded data present in the YUV format as well as the aforementioned coding parameters are stored in the storage unit 13.

De retour à l'étape E202, lorsque le test pratiqué au cours de cette étape est négatif, l'étape E204 prévoit de récupérer les valeurs des pixels disponibles dans l'unité de stockage 5 et de les mémoriser dans l'unité de stockage 13.  Returning to step E202, when the test performed in this step is negative, step E204 provides for recovering the values of the available pixels in the storage unit 5 and storing them in the storage unit 13 .

<Desc/Clms Page number 16> <Desc / Clms Page number 16>

Les étapes E203 et E204 qui viennent d'être décrites sont toutes deux suivies par une étape E205 au cours de laquelle l'unité 14 procède à une récupération des données vidéo.  The steps E203 and E204 which have just been described are both followed by a step E205 during which the unit 14 proceeds to a video data recovery.

Il s'agit ici d'obtenir des caractéristiques de ces données vidéo, à savoir le ou les paramètres de codage utilisés si ces données vidéo étaient présentes dans l'unité de stockage 5 sous forme compressée.  It is a matter here of obtaining characteristics of this video data, namely the coding parameter or parameters used if this video data was present in the storage unit 5 in compressed form.

Ainsi, les paramètres de codage peuvent être, par exemple, la résolution spatiale de la vidéo, le nombre d'images par seconde de cette vidéo (résolution temporelle), le nombre d'images codées en mode Intra ou en mode Inter...  Thus, the coding parameters may be, for example, the spatial resolution of the video, the number of frames per second of this video (temporal resolution), the number of images coded in Intra mode or in Inter mode.

Dans le cas où les données vidéo n'étaient pas disponibles sous forme compressée dans l'unité de stockage 5, les informations associées aux données vidéo et qui sont récupérées à l'étape E205 sont, par exemple, l'information selon laquelle la vidéo n'était pas compressée et sa résolution.  In the case where the video data was not available in compressed form in the storage unit 5, the information associated with the video data and which is retrieved in the step E205 is, for example, the information that the video was not compressed and its resolution.

Au cours de l'étape suivante E206, on procède à l'obtention des caractéristiques de la machine client 2 qui a émis la requête mentionnée à l'étape E200.  In the next step E206, the characteristics of the client machine 2 that issued the request mentioned in step E200 are obtained.

Les caractéristiques de la machine client sont par exemple récupérées consécutivement à la transmission d'une requête d'obtention de ces caractéristiques, du dispositif 4 de la figure 1 vers la machine client 2, à travers le réseau de communication 3.  The characteristics of the client machine are for example recovered following the transmission of a request to obtain these characteristics, from the device 4 of FIG. 1 to the client machine 2, through the communication network 3.

Ces caractéristiques sont principalement la capacité mémoire disponible dans la machine client 2 et la résolution de son unité de visualisation 23 (écran).  These characteristics are mainly the memory capacity available in the client machine 2 and the resolution of its display unit 23 (screen).

Toutefois, à titre de variante, ces caractéristiques peuvent également inclure la capacité de calcul de la machine client, à savoir le nombre total d'opérations qu'elle peut effectuer.  However, as an alternative, these features may also include the computing capacity of the client machine, i.e., the total number of operations it can perform.

Ces caractéristiques sont stockées de façon temporaire dans l'unité de stockage 13 du dispositif 4 de la figure 1.  These characteristics are stored temporarily in the storage unit 13 of the device 4 of FIG.

Préférentiellement, la capacité de calcul de la machine client est égale à la vitesse du processeur de celle-ci, exprimée en nombre d'opérations élémentaires par seconde.  Preferably, the computing capacity of the client machine is equal to the speed of the processor thereof, expressed in number of elementary operations per second.

<Desc/Clms Page number 17> <Desc / Clms Page number 17>

L'étape E206 est suivie d'une étape E207 au cours de laquelle le dispositif 4 de la figure 1 obtient les caractéristiques du réseau de communication 3 telles que, par exemple, la bande passante disponible pour transmettre les données vidéo du dispositif 4 à la machine client 2, la perte de paquets, le taux de bits erroné...  Step E206 is followed by a step E207 in which the device 4 of FIG. 1 obtains the characteristics of the communication network 3 such as, for example, the bandwidth available for transmitting the video data of the device 4 to the device. client machine 2, packet loss, wrong bit rate ...

De façon préférentielle, les caractéristiques du réseau prises en compte seront limitées à la bande passante disponible.  Preferably, the characteristics of the network taken into account will be limited to the available bandwidth.

Ces caractéristiques sont récupérées par l'unité 16 qui les stocke alors dans l'unité de stockage temporaire 13.  These characteristics are recovered by the unit 16 which then stores them in the temporary storage unit 13.

Au cours de l'étape suivante E208, on procède à la détermination du ou des paramètres de codage des données vidéo de manière adaptée à la capacité mémoire de la machine client 2.  During the next step E208, the encoding parameter or parameters of the video data are determined in a manner adapted to the memory capacity of the client machine 2.

Le détail des opérations effectuées lors de cette étape sera fourni ultérieurement lors de la description faite en référence à la figure 4a.  The details of the operations performed during this step will be provided later in the description made with reference to FIG. 4a.

Par ailleurs, à titre de variante, au cours de cette étape E208, on peut également procéder à la détermination du ou des paramètres de codage des données de manière adaptée à la capacité mémoire ainsi qu'à la capacité de calcul de la machine client.  Furthermore, as a variant, during this step E208, it is also possible to determine the data encoding parameter or parameters in a manner adapted to the memory capacity as well as the computing capacity of the client machine.

Cette variante sera décrite ultérieurement en référence à la figure 4b.  This variant will be described later with reference to FIG. 4b.

Cette étape est effectuée par l'unité 17 du dispositif 4 de la figure 1 sous contrôle de l'unité de commande 19 et à partir des informations disponibles dans l'unité de stockage 13.  This step is performed by the unit 17 of the device 4 of FIG. 1 under the control of the control unit 19 and from the information available in the storage unit 13.

La détermination de ce ou ces paramètres de codage peut également être effectuée de manière adaptée aux caractéristiques du réseau de communication 3, en plus de la capacité mémoire de la machine client et éventuellement de sa capacité de calcul.  The determination of this or these coding parameters can also be performed in a manner adapted to the characteristics of the communication network 3, in addition to the memory capacity of the client machine and possibly its computing capacity.

Au cours de l'étape suivante E209, le dispositif 4 de la figure 1 et, plus particulièrement, l'unité de transmission 18 de celui-ci procède à la transmission des données vidéo qui ont été préalablement compressées à l'étape E208 vers la machine client 2.  During the next step E209, the device 4 of FIG. 1 and, more particularly, the transmission unit 18 of the latter proceeds to the transmission of the video data which has been previously compressed in step E208 to the customer machine 2.

On notera que la transmission des données vidéo compressées se fait préférentiellement à la volée (connu en terminologie anglo-saxonne sous  Note that the transmission of compressed video data is preferably done on the fly (known in English terminology under

<Desc/Clms Page number 18><Desc / Clms Page number 18>

le terme"streaming"), c'est-à-dire que les informations nécessaires à l'utilisateur pour reconstruire une image sont mémorisées dans l'unité de stockage 13, puis sont transmises à la machine client 2 avant que toutes les données vidéo ne soient compressées.  the term "streaming"), that is to say that the information necessary for the user to reconstruct an image is stored in the storage unit 13, then are transmitted to the client machine 2 before all the video data are compressed.

Ainsi, l'utilisateur reçoit au niveau de la machine client 2 les informations par paquets, dans chacun desquels se trouvent des informations permettant à cet utilisateur de décoder une image courante.  Thus, the user receives at the level of the client machine 2 the packet information, in each of which are information allowing this user to decode a current image.

Les figures 3a et 3b illustrent respectivement le codage et le décodage d'une vidéo en couleurs au format YUV.  Figures 3a and 3b respectively illustrate the coding and decoding of a color video in YUV format.

Selon un mode préféré de réalisation de l'invention, le décodeur vidéo utilisé pour la mise en oeuvre de cette invention est conforme à la partie visuelle du standard MPEG-4 (information technology-Generic coding of audiovisual objects = part2 : visual, ISO/IEC JTC1/SC 29/WG11 N 3056, December 2000).  According to a preferred embodiment of the invention, the video decoder used for the implementation of this invention is in accordance with the visual part of the MPEG-4 standard (information technology-Generic coding of audiovisual objects = part2: visual, ISO / IEC JTC1 / SC 29 / WG11 No. 3056, December 2000).

Dans l'exemple traité ici, la vidéo sera considérée comme un seul objet de forme rectangulaire.  In the example discussed here, the video will be considered as a single rectangular object.

Par conséquent, seul un jeu restreint d'outils de compression qui permettent le décodage de la texture et la compensation de mouvement seront pris en compte. Les outils nécessaires au décodage de la forme arbitraire d'un objet ne sont donc pas utilisés ici.  Therefore, only a limited set of compression tools that allow texture decoding and motion compensation will be taken into account. The tools needed to decode the arbitrary form of an object are therefore not used here.

On notera que la texture d'une image est donnée par les valeurs des pixels de l'image qui sont exprimées sur trois composantes.  It should be noted that the texture of an image is given by the values of the pixels of the image which are expressed on three components.

Les vidéos sont stockées sur le serveur 1 soit sous forme compressée au format mp4 conforme au standard MPEG-4, soit sous forme non-compressée au format YUV.  The videos are stored on the server 1 either in compressed form MP4-compliant mp4 format or uncompressed YUV format.

On utilise par exemple le format YUV de type 4 : 2 : 0, ce qui signifie que les composantes de chrominance (U, V) ont quatre fois moins d'échantillons (pixels) que les composantes de luminance (Y).  For example, the 4: 2: 0 YUV format is used, which means that the chrominance components (U, V) have four times fewer samples (pixels) than the luminance components (Y).

La figure 3a illustre le procédé de codage mis en oeuvre par l'unité de codage 11 de la figure 1.  FIG. 3a illustrates the coding method implemented by the coding unit 11 of FIG. 1.

Chaque image de la vidéo demandée par l'utilisateur est découpée en blocs de données de 8x8 pixels.  Each image of the video requested by the user is divided into 8x8 pixel data blocks.

<Desc/Clms Page number 19> <Desc / Clms Page number 19>

Chaque groupe de quatre blocs forme un macro-bloc de 16x16 pixels.  Each group of four blocks forms a macro-block of 16x16 pixels.

Le codage d'une image est effectué sur chacun des macro-blocs selon deux modes de codage distincts : l'un noté 1 pour le mode de codage Intra et l'autre noté P pour le mode de codage prédictif ou Inter.  The coding of an image is performed on each of the macroblocks according to two distinct coding modes: one denoted 1 for the Intra coding mode and the other coded P for the predictive coding mode or Inter.

Une séquence d'images de 1 seconde sera codée de la façon suivante : IPPIPPIPPIPPIPPIPPIPPIPPIPPIPP...  A sequence of 1 second images will be coded as follows: IPPIPPIPPIPPIPPIPPIPPIPPIPPIPP ...

Ceci signifie que la première image est codée selon le mode Intra, les deux suivantes selon le mode Inter, la suivante selon le mode Intra, les deux suivantes selon le mode Inter, etc....  This means that the first image is coded according to the Intra mode, the next two according to the Inter mode, the next according to the Intra mode, the following two according to the Inter mode, etc.

Ainsi, pour une séquence de 30 images par seconde, 10 images seront codées en mode Intra et 20 images en mode Inter.  Thus, for a sequence of 30 frames per second, 10 images will be encoded in Intra mode and 20 images in Inter mode.

On notera qu'une séquence d'images sera appelée par la suite un segment.  Note that a sequence of images will be called later a segment.

En mode intra, le codage s'effectue bloc par bloc selon les étapes E310 à E313 de la figure 3a.  In intra mode, the coding is carried out block by block according to the steps E310 to E313 of FIG. 3a.

Dans ce mode de codage, chaque bloc constitue une unité élémentaire de données qui est codée indépendamment des autres blocs.  In this encoding mode, each block constitutes an elementary unit of data which is encoded independently of the other blocks.

On rappelle que les valeurs des pixels de chaque image du segment d'images à coder sont stockées temporairement dans l'unité 13 de stockage temporaire de la figure 1 et constituent une vidéo qui est appelée vidéo originale.  It is recalled that the values of the pixels of each image of the image segment to be encoded are stored temporarily in the temporary storage unit 13 of FIG. 1 and constitute a video which is called the original video.

Dans le cas où la vidéo est stockée dans l'unité de stockage 5 sous forme compressée, le procédé de décodage est appliqué à l'étape E203 de la figure 2 de manière à obtenir une vidéo au format YUV.  In the case where the video is stored in the storage unit 5 in compressed form, the decoding method is applied to the step E203 of FIG. 2 so as to obtain a video in the YUV format.

Les valeurs de la vidéo ainsi reconstruite sont stockées dans l'unité 13 de stockage temporaire et dans l'unité de stockage 5 également appelée vidéo originale.  The values of the video thus reconstructed are stored in the temporary storage unit 13 and in the storage unit 5, also called the original video.

Le procédé de codage d'un bloc en mode Intra débute par une étape E310 au cours de laquelle on calcule la transformée en cosinus discret selon la méthode connue décrite dans l'article intitulé"Fast Algorithms for the Discrete  The method for encoding an Intra mode block begins with a step E310 during which the discrete cosine transform is calculated according to the known method described in the article entitled "Fast Algorithms for the Discrete

<Desc/Clms Page number 20><Desc / Clms Page number 20>

Cosine Transform", E. Feig and S. Winograd, IEEE Trans. On Signal Proc., vol.  Cosine Transform, E. Feig and S. Winograd, IEEE Trans., On Signal Proc., Vol.

40, No. 9, September 1992. 40, No. 9, September 1992.

L'étape E310 est suivie d'une étape E311 qui prévoit de quantifier les coefficients transformés obtenus lors de l'étape E310.  Step E310 is followed by a step E311 which provides for quantifying the transformed coefficients obtained during step E310.

L'étape E311 est suivie d'une étape E312 au cours de laquelle on ordonne les coefficients quantifiés de manière à ce que la méthode de codage à longueur variable utilisée lors de l'étape ultérieure E313 soit la plus efficace possible.

Figure img00200001
The step E311 is followed by a step E312 in which the quantized coefficients are ordered so that the variable length coding method used in the subsequent step E313 is as effective as possible.
Figure img00200001

Pour ce faire, on utilise la méthode de balayage décrite dans le standard Information technology-Generic coding of audio-visual objects = part2 : visual, ISO/IEC JTC 1/SC 29/LVG11 N3056, December 2000. This is done by using the scanning method described in the Information technology-Generic coding of audio-visual objects = part2: visual, ISO / IEC JTC 1 / SC 29 / LVG11 N3056, December 2000.

L'étape E312 est suivie d'une étape E313 selon laquelle on effectue le codage statistique des coefficients ordonnés selon la méthode de codage à longueur variable décrite dans le standard Information technology-Generic coding of audio-visual objects = part2 : visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000.  Step E312 is followed by a step E313 in which the statistical coding of the ordered coefficients is carried out according to the variable length coding method described in the standard Information technology-Generic coding of audio-visual objects = part2: visual, ISO / IEC JTC 1 / SC 29 / WG11 N3056, December 2000.

A l'issue de l'étape E313, les coefficients codés statistiquement sont stockés dans l'unité de stockage temporaire 13 et sont concaténés aux autres informations de codage de l'image courante.  At the end of step E313, the statistically coded coefficients are stored in the temporary storage unit 13 and are concatenated with the other coding information of the current image.

En mode prédictif ou Inter, le codage s'effectue macro-bloc par macro-bloc où chaque macro-bloc constitue une unité élémentaire de données qui est codée indépendamment des autres.  In predictive or Inter mode, the coding is macro-block by macroblock where each macroblock constitutes an elementary unit of data which is coded independently of the others.

Chacun des macro-blocs peut être codé soit en mode Intra soit en mode Inter.  Each of the macroblocks can be coded either in Intra mode or Inter mode.

Le mode de codage est choisi en fonction de l'activité présente à l'intérieur d'un macro-bloc.  The coding mode is chosen according to the activity present inside a macro-block.

Par exemple, cette activité est mesurée par la variance entre un macro-bloc d'une image courante et le macro-bloc de l'image précédente situé à la même position spatiale.  For example, this activity is measured by the variance between a macroblock of a current image and the macroblock of the previous image located at the same spatial position.

Si la variance est supérieure à un seuil prédéterminé, alors le macrobloc est codé en mode Inter.  If the variance is greater than a predetermined threshold, then the macroblock is coded in Inter mode.

Ce macro-bloc sera codé en mode Intra dans le cas contraire.  This macro-block will be coded in Intra mode otherwise.

<Desc/Clms Page number 21> <Desc / Clms Page number 21>

Si le macro-bloc est codé en mode Intra, alors le codage s'effectue selon les étapes E310 à E313 décrites précédemment.  If the macroblock is encoded in Intra mode, then the coding is performed according to the steps E310 to E313 described above.

Si le macro-bloc est codé en mode Inter, le codage s'effectue selon les étapes E315 à E317 qui vont être explicitées ci-après.  If the macroblock is coded in Inter mode, the coding is performed according to the steps E315 to E317 which will be explained below.

Au cours de l'étape E315 on applique une méthode classique d'estimation de mouvement par comparaison de macro-blocs.  During step E315, a conventional motion estimation method is applied by comparison of macroblocks.

Les algorithmes mis en oeuvre s'appuient sur l'hypothèse simplificatrice selon laquelle les pixels d'un même macro-bloc sont animés du même mouvement.  The algorithms used are based on the simplifying assumption that the pixels of the same macroblock are animated by the same movement.

Le vecteur de mouvement d'un macro-bloc d'une image courante est alors déterminé en trouvant le macro-bloc le plus ressemblant dans l'image précédente dans une fenêtre de recherche présélectionnée.  The motion vector of a macroblock of a current image is then determined by finding the most resembling macroblock in the previous image in a preselected search window.

Si les dimensions de la fenêtre de recherche exercent une influence sur le temps de calcul de l'estimation de mouvement, le problème majeur lié à l'estimation de mouvement qui est effectuée par comparaison de macro-blocs reste la détermination de la distance entre les macro-blocs.  If the dimensions of the search window have an influence on the calculation time of the motion estimation, the major problem related to the motion estimation which is carried out by comparison of macroblocks remains the determination of the distance between the macroblocks.

On utilisera de préférence une méthode d'estimation de mouvement décrite dans l'article "Estimation de mouvement en ligne", L. Difdier, R.  A motion estimation method described in the article "Online motion estimation", L. Difdier, R., will preferably be used.

Kamdem, LIM Université de Provence, Dec. 96.  Kamdem, LIM University of Provence, Dec. 96.

Cette méthode permet d'obtenir un vecteur de mouvement à deux composantes de mouvement translationnel.  This method makes it possible to obtain a motion vector with two components of translational movement.

Pour obtenir un train binaire conforme au standard MPEG-4, ce vecteur de mouvement est codé différentiellement par rapport au vecteur de mouvement du macro-bloc de l'image précédente disposé à la même position spatiale.  In order to obtain a binary train conforming to the MPEG-4 standard, this motion vector is coded differentially with respect to the motion vector of the macroblock of the preceding image disposed at the same spatial position.

L'étape E315 est suivie d'une étape E316 au cours de laquelle on code statistiquement le vecteur de mouvement différentiel précédemment déterminé.  Step E315 is followed by a step E316 in which the previously determined differential motion vector is statistically coded.

Les coefficients ainsi obtenus sont stockés dans l'unité de stockage temporaire 13 et sont concaténés aux autres informations de codage de l'image courante.  The coefficients thus obtained are stored in the temporary storage unit 13 and are concatenated with the other coding information of the current image.

<Desc/Clms Page number 22> <Desc / Clms Page number 22>

Une fois que le mouvement pour un macro-bloc a été estimé lors de l'exécution de l'étape E315, alors, conformément à l'étape E317, un macro-bloc dit prédit est construit à partir du macro-bloc de l'image précédente auquel est appliqué le vecteur de mouvement associé à ce macro-bloc.  Once the movement for a macro-block has been estimated during the execution of step E315, then, according to step E317, a predicted macro-block is constructed from the macro-block of the previous image to which the motion vector associated with this macroblock is applied.

Ensuite, un macro-bloc dit de différence, est calculé entre le macrobloc de l'image courante et le macro-bloc prédit.  Then, a so-called difference macro-block is calculated between the macroblock of the current image and the predicted macroblock.

L'étape E317 est suivie d'une étape E318 au cours de laquelle on code le macro-bloc de différence selon le mode Intra décrit plus haut.  Step E317 is followed by a step E318 in which the difference macro-block is coded according to the Intra mode described above.

Les coefficients résultant du mode de codage Intra sont stockés dans l'unité de stockage temporaire 13 et sont concaténés aux autres informations de codage du macro-bloc de l'image courante.  The coefficients resulting from the Intra coding mode are stored in the temporary storage unit 13 and are concatenated with the other coding information of the macroblock of the current image.

Les paramètres utilisés lors des étapes de quantification et de codage à longueur variable, sont définis pour chaque macro-bloc, que ce soit dans le mode Intra ou Inter.  The parameters used during the quantization and variable length coding steps are defined for each macroblock, whether in the Intra or Inter mode.

A cet effet, on utilise une méthode de contrôle de débit classique lors d'une étape E314.  For this purpose, a conventional flow control method is used during a step E314.

Cette méthode permet de contrôler l'allocation de débit pour chaque macro-bloc de manière à ne pas dépasser le débit total alloué à la transmission de la vidéo compressée.  This method is used to control the rate allocation for each macroblock so as not to exceed the total bit rate allocated to the transmission of the compressed video.

Dans l'exemple décrit, la valeur de débit maximale est fixée par la valeur BR.  In the example described, the maximum flow value is set by the value BR.

Les données codées et stockées de façon temporaire dans l'unité 13 sont mises au format MPEG-4, comme indiqué dans le standard Information

Figure img00220001

technology-Generic coding of audio-visual objects = part2 : visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000, avant d'être transmises sur le réseau 3 de la figure 1 vers la machine client 2. The data coded and stored temporarily in the unit 13 are put in the MPEG-4 format, as indicated in the standard Information
Figure img00220001

technology-Generic coding of audio-visual objects = part2: visual, ISO / IEC JTC 1 / SC 29 / WG11 N3056, December 2000, before being transmitted on the network 3 of Figure 1 to the client machine 2.

Il convient de noter que le mode de codage utilisé pour coder chaque macro-bloc fait partie des informations qui sont transmises.  It should be noted that the encoding mode used to encode each macro-block is part of the information that is transmitted.

La figure 3b illustre le procédé de décodage mis en oeuvre par l'unité de décodage 12 du dispositif 4 et par l'unité de décodage 22 de la machine client 2 de la figure 1.  FIG. 3b illustrates the decoding method implemented by the decoding unit 12 of the device 4 and by the decoding unit 22 of the client machine 2 of FIG. 1.

<Desc/Clms Page number 23> <Desc / Clms Page number 23>

Le procédé de décodage va être décrit lorsqu'il est mis en oeuvre dans la machine client 2 et, plus particulièrement, au niveau des unités 20,21 et 22.  The decoding method will be described when it is implemented in the client machine 2 and, more particularly, at the level of the units 20, 21 and 22.

La transposition de cette description au procédé de décodage mis en oeuvre par le dispositif 4 du serveur 1 s'effectue aisément en remplaçant les unités 20,21 et 22 respectivement par les unités 18,13 et 12.  The transposition of this description to the decoding method implemented by the device 4 of the server 1 is easily performed by replacing the units 20,21 and 22 respectively by the units 18,13 and 12.

La machine client 2 comporte une unité 21 de stockage qui est alimentée par les données numériques provenant du dispositif 4 par l'intermédiaire de la connexion établie entre les deux machines à travers le réseau 3.  The client machine 2 comprises a storage unit 21 which is fed by the digital data coming from the device 4 via the connection established between the two machines through the network 3.

Ces données sont reçues par l'unité de réception 20 sous la forme de paquets qui contiennent les informations nécessaires pour décoder un ou plusieurs macro-blocs de l'image courante.  This data is received by the reception unit 20 in the form of packets which contain the information necessary to decode one or more macroblocks of the current image.

L'unité de stockage 21 est capable d'extraire des informations à partir du train binaire qui a été généré par l'unité de codage 11 du dispositif 4 et de les fournir à l'unité de décodage 22 de la machine client 2.  The storage unit 21 is capable of extracting information from the bitstream generated by the coding unit 11 of the device 4 and supplying them to the decoding unit 22 of the client machine 2.

La figure 3b illustre le décodage d'un macro-bloc codé soit en mode Intra, tel qu'indiqué par les étapes 322 à 326, soit en mode Inter ou prédictif comme indiqué par les étapes 327 à 332.  FIG. 3b illustrates the decoding of a coded macroblock either in Intra mode, as indicated by steps 322 to 326, or in Inter or predictive mode as indicated by steps 327 to 332.

L'algorithme de décodage débute par une étape E319 au cours de laquelle on récupère le mode de codage du macro-bloc courant.  The decoding algorithm begins with a step E319 during which the coding mode of the current macro-block is recovered.

Au cours de l'étape E320, on procède à un test pour savoir si le macro-bloc a été codé en mode Intra.  During step E320, a test is made to know if the macroblock has been coded in Intra mode.

Dans l'affirmative, l'étape E320 est suivie d'une étape E321 qui prévoit de récupérer, à partir de l'unité de stockage 21, les coefficients statistiques (codes à longueur variable) liés à ce macro-bloc.  If so, the step E320 is followed by a step E321 which provides for recovering, from the storage unit 21, the statistical coefficients (variable length codes) related to this macroblock.

L'étape E321 est suivie d'une étape E322 qui effectue le décodage de ces coefficients selon la table de coefficients décrite dans le standard Information technology- Generic coding of audio-visual objects = part2 : visual, ISO/IEC JTC VSC 29/WG11 N3056, December 2000.  Step E321 is followed by a step E322 which decodes these coefficients according to the coefficient table described in the standard Information technology-Generic coding of audio-visual objects = part2: visual, ISO / IEC JTC VSC 29 / WG11 N3056, December 2000.

Les coefficients ainsi obtenus forment un ensemble de données bidimensionnelles noté QF [u] [v].  The coefficients thus obtained form a set of two-dimensional data denoted QF [u] [v].

<Desc/Clms Page number 24> <Desc / Clms Page number 24>

Au cours de l'étape suivante E323, on effectue une opération de quantification inverse sur les valeurs de l'ensemble de données QF [u] [v] pour obtenir le tableau bidimensionnel F"[u][v] selon les tables de quantification décrites dans le standard Information technology- Generic coding of audiovisual abjects = part2 : vssual, ISO/IEC JTC 1/SC 29/WG11 A/3056, December 2000.  In the next step E323, an inverse quantization operation is performed on the values of the data set QF [u] [v] to obtain the two-dimensional array F "[u] [v] according to the quantization tables described in the standard Information technology- Generic coding of audiovisual abjects = part2: vssual, ISO / IEC JTC 1 / SC 29 / WG11 A / 3056, December 2000.

Au cours de l'étape suivante E324, on applique une méthode de saturation aux valeurs des coefficients du tableau bidimensionnel F" [u] [v] selon le standard Information technology-Generic coding of audio-visual objects = part2 : visual, ISO/IEC JTC 1/SC 29/WG11 N3056, Oecember 2000, de manière à obtenir le tableau bidimensionnel F' [u] [v] dont les valeurs appartiennent à l'intervalle [-2bits par pixel + 3, 2bits par pixel + 3 - 1].  In the next step E324, a saturation method is applied to the values of the coefficients of the two-dimensional array F "[u] [v] according to the standard Information technology-Generic coding of audio-visual objects = part2: visual, ISO / IEC JTC 1 / SC 29 / WG11 N3056, Oecember 2000, to obtain the two-dimensional array F '[u] [v] whose values belong to the range [-2bits per pixel + 3, 2bits per pixel + 3 - 1].

Le nombre de bits par pixels est de préférence égal à 8.  The number of bits per pixel is preferably 8.

Au cours de l'étape suivante E325, on effectue une opération de contrôle des coefficients saturés de manière à obtenir les coefficients DCT F [u] [v].  During the next step E325, a control operation of the saturated coefficients is performed so as to obtain the DCT coefficients F [u] [v].

Au cours de l'étape suivante E326, on reconstruit les valeurs des pixels du macro-bloc courant en fonction des coefficients DCT F [u] [v] en utilisant la méthode de décodage décrite dans l'article Algorithms for the Discrete Cosine Transform", E. Feig and S. Winograd, IEEE Trans. On Signal Proc., vol. 40, No. 9, September 1992.  In the next step E326, the pixel values of the current macro-block are reconstructed as a function of the DCT coefficients F [u] [v] using the decoding method described in the article Algorithms for the Discrete Cosine Transform " , E. Feig and S. Winograd, IEEE Trans., On Signal Proc, Vol 40, No. 9, September 1992.

Ces valeurs reconstruites sont stockées dans l'unité de stockage 21 en vue d'être visualisées sur l'unité de visualisation 23.  These reconstructed values are stored in the storage unit 21 for display on the display unit 23.

L'algorithme de décodage d'un macro-bloc est donné ci-dessous.  The decoding algorithm of a macro-block is given below.

Les valeurs des coefficients dc~scaler, quantiser~scale et de la matrice ] [u] [v] utilisés dans cet algorithme sont des valeurs définies par le standard Information technology-Generic coding of audio-visual objects = part2 : visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000.

Figure img00240001
The values of the coefficients dc ~ scaler, quantiser ~ scale and the matrix] [u] [v] used in this algorithm are values defined by the standard Information technology-Generic coding of audio-visual objects = part2: visual, ISO / IEC JTC 1 / SC 29 / WG11 N3056, December 2000.
Figure img00240001

<Desc/Clms Page number 25> <Desc / Clms Page number 25>

Figure img00250001

else if ( (u==0) & & (v==0) & & (macroblockjntra)) { F'lu] = dc~scaler* QF [u] [v] ; } else { if (macroblockintra) { F'lu] [v] = QF [u] [v] * MO] [u] [v] * quantiser~scale)/32 ; } else { F'lu] [v] = ( ( (OF [ [] * 2) + Sign (QFMM)) * ] [u] [v] * quantiser~scale)/32 ; } } } } sum = 0 ; for (v=0 ; v < 8 ; v++) { for (u=O ; u < 8 ; u++) { if (FU] [v] > 2 bitsper~pixel + 3 F1u ] ; [ ;v ] ; = 2 bits~per~pixe + 3 - 1 ; } e ! se { bits-per * 1+3 if (F] M < -2--'") { if (F &verbar;u] [v] < -2 bits~Per~Pixel + 3) { F] [t/] =-2 Msperpixe ! + 3 } else { else { Flu] [v] = F'lu] ; } } sum = sum + Flu] [v] ; F [u] [v] = Fluez ; } } if ( (sum & 1) == 0) {
Figure img00250001

else if ((u == 0) && (v == 0) && (macroblockjntra)) {F'lu] = dc ~ scaler * QF [u] [v]; } else {if (macroblockintra) {F'lu] [v] = QF [u] [v] * MO] [u] [v] * quantize ~ scale) / 32; } else {F'lu] [v] = (((OF [[] * 2) + Sign (QFMM)) *] [u] [v] * quantize ~ scale) / 32; }}}} sum = 0; for (v = 0; v <8; v ++) {for (u = 0; u <8; u ++) {if (FU] [v]> 2 bitsper ~ pixel + 3 F1u]; [; v]; = 2 bits ~ per ~ pixe + 3 - 1;} e! se {bits-per * 1 + 3 if (F] M <-2-- '") {if (F &verbar; u] [v] <-2 bits ~ Per ~ Pixel + 3) {F] [t /] = -2 Msperpixe! + 3} else {else {Flu] [v] = F'lu];}} sum = sum + Flu] [v]; F [u] [v] = Flue;}} if ((sum & 1) == 0) {

<Desc/Clms Page number 26> <Desc / Clms Page number 26>

Figure img00260001
Figure img00260001

Figure img00260002

} }
La méthode de transformation en cosinus discret d'un pixel f (x, y) d'un bloc de taille N x N est donnée par l'équation suivante :
Figure img00260003

avec v=0, 1, 2,... N-1, où x, y sont les coordonnées spatiales, u, v sont les coordonnées dans le domaine transformé, et
Figure img00260004
Figure img00260002

}}
The method of discrete cosine transformation of a pixel f (x, y) of a block of size N x N is given by the following equation:
Figure img00260003

with v = 0, 1, 2, ... N-1, where x, y are the spatial coordinates, u, v are the coordinates in the transformed domain, and
Figure img00260004

Chaque pixel est représenté par n bits (pour représenter une des composantes Y, U ou V) et les coefficients transformés sont représentés par (n+4) bits. L'amplitude des coefficients DCT est comprise dans l'intervalle [- 2n+3 : +2n+3~1]. Each pixel is represented by n bits (to represent one of the components Y, U or V) and the transformed coefficients are represented by (n + 4) bits. The amplitude of the DCT coefficients is in the range [- 2n + 3: + 2n + 3 ~ 1].

On utilise de préférence une méthode rapide de codage/décodage DCT.  Preferably, a fast method of DCT coding / decoding is used.

Cette méthode, décrite dans l'article"Fast Algorithms for the

Figure img00260005

Discrete Cosine Transform", E. Feig and S. Winograd, IEEE Trans. On Signal Proc., vol. 40, No. 9, September 1992, permet de coder/décoder des macro- blocs de taille 2m (ici m=3) selon l'équation suivante :
Figure img00260006

où Yest le vecteur des coefficients DCT de dimension 8 etCJa matrice 8*8 de coefficients DCT. This method, described in the article "Fast Algorithms for the
Figure img00260005

Discrete Cosine Transform, E. Feig and S. Winograd, IEEE Trans., On Signal Proc, Vol 40, No. 9, September 1992, allows coding / decoding of macroblocks of size 2m (here m = 3). according to the following equation:
Figure img00260006

where Y is the vector of DCT coefficients of dimension 8 and CJa matrix 8 * 8 of DCT coefficients.

Cette matrice peut être factorisée et, après quelques manipulations algébriques, cette matrice est égale à Cg = *jSg, où/ est une matrice de permutation des signes de dimension 8*8, Kg et Bg sont des matrices de  This matrix can be factorized and, after some algebraic manipulations, this matrix is equal to Cg = * jSg, where / is a matrix of permutation of the signs of dimension 8 * 8, Kg and Bg are matrices of

<Desc/Clms Page number 27><Desc / Clms Page number 27>

coefficients de dimension 8*8 qui ont été définies de manière à obtenir un codeur/décodeur rapide.  dimension coefficients 8 * 8 which have been defined to obtain a fast encoder / decoder.

Consécutivement à l'étape E326, l'étape E333 prévoit un stockage et une visualisation des macro-blocs décodés à partir des unités 21 et 23. L'image courante est reconstruite une fois que tous les macro-blocs de cette image sont décodés et visualisés.  Subsequent to step E326, step E333 provides for storage and visualization of the decoded macroblocks from units 21 and 23. The current image is reconstructed once all the macroblocks of this image are decoded and viewed.

De retour à l'étape E320, si le résultat du test est négatif, cela signifie que le macro-bloc a été codé en mode Inter ou prédictif.  Returning to step E320, if the result of the test is negative, it means that the macroblock has been coded in Inter or predictive mode.

Au cours de l'étape suivante E327, on récupère alors des informations parmi les données numériques qui ont été transmises par le dispositif 4 et mémorisées dans l'unité de stockage 21 de la machine client 2.  During the next step E327, information is then retrieved from the digital data transmitted by the device 4 and stored in the storage unit 21 of the client machine 2.

Ces informations sont propres au codage du macro-bloc en mode Inter et sont, par exemple, les coefficients statistiques (codes à longueur variable) liés à ce macro-bloc.  This information is specific to the coding of the macroblock in Inter mode and is, for example, the statistical coefficients (variable length codes) related to this macroblock.

L'étape E327 est suivie d'une étape E328 qui prévoit de décoder ces coefficients statistiques de manière à obtenir le vecteur de mouvement différentiel.  Step E327 is followed by a step E328 which provides for decoding these statistical coefficients so as to obtain the differential motion vector.

Au cours de l'étape suivante E329, on reconstruit le vecteur de mouvement à partir du vecteur de mouvement différentiel et du vecteur de mouvement (Px, Py) du macro-bloc de l'image précédente disposé à la même position spatiale.

Figure img00270001
During the next step E329, the motion vector is reconstructed from the differential motion vector and the motion vector (Px, Py) of the macroblock of the previous image disposed at the same spatial position.
Figure img00270001

L'algorithme utilisé est le suivant : r~size = vop~fcode-1 f = 1 rs/ze high (32*f)- 1 ; low = ( (-32) * f) ; range = (64 * f) ;

Figure img00270002

if ( (f == 1) Il (horizontal~mv~data == 0)) MVDx = horizontal~mv~data ; else { MVDx = ( (/4bs (horizontaLmvdata)-1) * f) + horizonta ! mvresidua) + 1 ; The algorithm used is the following: r ~ size = vop ~ fcode-1 f = 1 rs / ze high (32 * f) - 1; low = ((-32) * f); range = (64 * f);
Figure img00270002

if ((f == 1) Il (horizontal ~ mv ~ data == 0)) MVDx = horizontal ~ mv ~ data; else {MVDx = ((/ 4bs (horizontaLmvdata) -1) * f) + horizonta! mvresidua) + 1;

<Desc/Clms Page number 28><Desc / Clms Page number 28>

if (horizontal~mv~data < 0)
MVDx =-MVDx ; } if ( (f == 1) Il (vertical~mv~data == 0))

Figure img00280001

MVDy = vertical~mv~data ; else { MVDy = ( (Abs (vertical~mv~data) - 1) * f) + vertical~mv~residual + 1 ; if (vertical~mv~data < 0)
MVDy =-MVDy ; } MVx = Px + MVDx ; if (MVx < low)
MVx = MVx + range ; if (MVx > high)
MVx = MVx-range ; MVy = Py + MVDy ; if (M\/ < low)
MVy = MVy + range ; if (MVy > high)
Figure img00280002

MVy = MVy-range ;
Les paramètres du train binaire sont tels que les composantes MVDx et MVDy du vecteur de mouvement différentiel, appartiennent à l'intervalle [low; high]. if (horizontal ~ mv ~ data <0)
MVDx = -MVDx; } if ((f == 1) Il (vertical ~ mv ~ data == 0))
Figure img00280001

MVDy = vertical ~ mv ~ data; else {MVDy = ((Abs (vertical ~ mv ~ data) - 1) * f) + vertical ~ mv ~ residual + 1; if (vertical ~ mv ~ data <0)
MVDy = -MVDy; } MVx = Px + MVDx; if (MVx <low)
MVx = MVx + range; if (MVx> high)
MVx = MVx-range; MVy = Py + MVDy; if (M \ / <low)
MVy = MVy + range; if (MVy> high)
Figure img00280002

MVy = MVy-range;
The parameters of the bitstream are such that the MVDx and MVDy components of the differential motion vector belong to the interval [low; High].

Les valeurs extrêmes de cet intervalle sont choisies lors de l'implémentation du décodeur.  The extreme values of this interval are chosen during the implementation of the decoder.

Par ailleurs, les composantes du vecteur de mouvement reconstruit, MVx et MVy, appartiennent également à cet intervalle. Les valeurs qui définissent cet intervalle pour les vecteurs de mouvement sont définis par le  Moreover, the components of the reconstructed motion vector, MVx and MVy, also belong to this interval. The values that define this interval for motion vectors are defined by the

<Desc/Clms Page number 29> <Desc / Clms Page number 29>

Figure img00290001

standard Information technology-Generic coding of audio-visual objects = part2 : Msua/,/SO//FCJ7'C /SC 29AVG M3056, Decem & e/-2000.
Figure img00290001

standard Information technology-Generic coding of audio-visual objects = part2: Msua /, / SO // FCJ7'C / SC 29AVG M3056, Decem & e / -2000.

On notera que r~size, f, MVDx, MVDy, high, low et range sont des variables, tandis que les données horizontatmvdata, verticatmvdata,

Figure img00290002

horizontal~mv~residual et vertica! mv~residual sont extraites du train binaire. Note that r ~ size, f, MVDx, MVDy, high, low and range are variables, while the data horizontatmvdata, verticatmvdata,
Figure img00290002

horizontal ~ mv ~ residual and vertica! mv ~ residual are extracted from the binary train.

La variable vop~fcode fait référence au mode de prédiction utilisé qui est extrait du train binaire. The variable vop ~ fcode refers to the prediction mode used which is extracted from the bit stream.

Au cours de cette même étape E329, le macro-bloc de l'image précédente est compensé en mouvement, c'est à dire que le macro-bloc est déplacé du vecteur de mouvement qui vient d'être reconstruit.  During this same step E329, the macroblock of the preceding image is compensated in motion, that is to say that the macroblock is displaced from the motion vector that has just been reconstructed.

Au cours de l'étape suivante E330, on récupère les informations propres au codage du macro-bloc en mode Intra et, notamment, les coefficients statistiques qui représentent le macro-bloc de différence.  During the next step E330, the information specific to the coding of the macroblock in Intra mode is retrieved and, in particular, the statistical coefficients that represent the difference macroblock.

Au cours de l'étape suivante E331, on reconstruit le macro-bloc de différence à partir de ces coefficients statistiques selon le procédé de décodage Intra décrit précédemment, lors de l'exécution des étapes E322 à E326.  During the next step E331, the difference macro-block is reconstructed from these statistical coefficients according to the Intra decoding method described above, during the execution of the steps E322 to E326.

L'étape E331 est suivie d'une étape E332 qui calcule la somme du macro-bloc compensé de l'étape E329 et du macro-bloc de différence obtenu à l'étape E331.  Step E331 is followed by a step E332 which calculates the sum of the compensated macroblock of step E329 and the difference macroblock obtained in step E331.

L'étape E332 est suivie d'une étape E333 qui organise le stockage des macro-blocs décodés dans l'unité 21.  The step E332 is followed by a step E333 which organizes the storage of the decoded macroblocks in the unit 21.

L'image est ensuite visualisée sur l'unité de visualisation 23 une fois que tous les macro-blocs ont été décodés.  The image is then displayed on the display unit 23 once all the macroblocks have been decoded.

La figure 4a illustre l'algorithme détaillant les différentes opérations effectuées lors de l'étape E208 de la figure 2.  FIG. 4a illustrates the algorithm detailing the various operations performed during step E208 of FIG. 2.

Plus particulièrement, cet algorithme comporte différentes instructions ou portions de code logiciel correspondant à des étapes du procédé de détermination de paramètre de codage de données selon l'invention.  More particularly, this algorithm comprises different instructions or portions of software code corresponding to steps of the data encoding parameter determination method according to the invention.

Le programme informatique qui est basé sur cet algorithme est mémorisé dans l'unité de stockage temporaire de données 13 de la figure 1 et exécuté par l'unité 17 sous le contrôle de l'unité de commande.  The computer program that is based on this algorithm is stored in the temporary data storage unit 13 of Figure 1 and executed by the unit 17 under the control of the control unit.

<Desc/Clms Page number 30> <Desc / Clms Page number 30>

Ce programme fait partie du programme"Progr"précité en référence à la figure 2 et est également stocké dans l'appareil de la figure 5.  This program is part of the program "Progr" above with reference to Figure 2 and is also stored in the apparatus of Figure 5.

L'exécution du programme informatique basé sur cet algorithme va mettre en oeuvre le procédé permettant d'adapter un ou plusieurs paramètres de codage qui vont être utilisés pour le codage des données transmises à la machine client, en fonction de la capacité mémoire de cette dernière.  The execution of the computer program based on this algorithm will implement the method for adapting one or more coding parameters that will be used for coding the data transmitted to the client machine, according to the memory capacity of the latter. .

Par ailleurs, ce procédé peut permettre également d'adapter ce ou ces paramètres de codage à la résolution de l'écran de la machine client 2 ainsi qu'aux ressources disponibles sur le réseau de communication 3, à savoir la bande passante.  Moreover, this method can also make it possible to adapt this or these coding parameters to the resolution of the screen of the client machine 2 as well as to the resources available on the communication network 3, namely the bandwidth.

L'algorithme de la figure 4a débute par une étape E400 au cours de laquelle on procède à une récupération du contexte dans lequel les données vont être transmises du dispositif 4 du serveur 1 à la machine client 2 (figure 1).  The algorithm of FIG. 4a begins with a step E400 during which a recovery of the context in which the data will be transmitted from the device 4 of the server 1 to the client machine 2 (FIG. 1) is carried out.

Plus particulièrement, la récupération de ce contexte consiste à obtenir, à partir de l'unité de stockage temporaire 13 : - la capacité mémoire totale M disponible dans la machine client 2, - la résolution de l'écran de cette machine, - la bande passante BP disponible sur le réseau de communication 3 pour transmettre les données vidéo, et - le ou les paramètres de codage utilisés pour coder les données vidéo mémorisées dans l'unité de stockage 5.  More particularly, the recovery of this context consists in obtaining, from the temporary storage unit 13: the total memory capacity M available in the client machine 2, the resolution of the screen of this machine, the band BP pass-through available on the communication network 3 for transmitting the video data, and - the encoding parameter or parameters used to encode the video data stored in the storage unit 5.

Les paramètres de codage utilisés sont par exemple, la taille du fichier contenant les données vidéo, notée BRo, la résolution de l'image ro et le nombre d'images par seconde fro.  The coding parameters used are, for example, the size of the file containing the video data, denoted BRo, the resolution of the image ro and the number of images per second fro.

* Il convient de noter que, lorsque les données vidéo sont mémorisées sous le format YUV, les paramètres de codage tels que la taille du fichier, la résolution de l'image et le nombre d'images par seconde sont nécessairement récupérés lors de cette étape E400. * Note that when video data is stored in YUV format, encoding settings such as file size, image resolution, and frame rate are necessarily retrieved during this step E400.

Les autres paramètres de codage utilisés pour coder ces données vidéo sont alors des valeurs qui sont choisies par défaut.  The other encoding parameters used to encode this video data are then values that are chosen by default.

Au cours de l'étape suivante E401, on procède à la détermination de la taille du fichier vidéo BR qui va être transmis.  During the next step E401, the size of the video file BR that will be transmitted is determined.

<Desc/Clms Page number 31> <Desc / Clms Page number 31>

Lors de cette étape, deux cas sont envisagés selon que la taille du fichier BRo stocké dans l'unité de stockage 5 de la figure 1 est supérieure ou inférieure à la bande passante disponible sur le réseau de communication 3.  In this step, two cases are envisaged depending on whether the size of the file BR0 stored in the storage unit 5 of FIG. 1 is greater or smaller than the available bandwidth on the communication network 3.

Pour ce faire, on tient compte de la valeur du débit maximal BR autorisé dans le réseau de communication 3 et qui est affectée au module de contrôle de débit lors de l'exécution de l'étape E314 de la figure 3a.  To do this, the value of the maximum authorized bit rate BR in the communication network 3 and which is allocated to the rate control module during the execution of step E314 of FIG. 3a is taken into account.

La taille du fichier vidéo BR qu'il est possible de transmettre est alors fournie par l'équation suivante :
BR = min (BRo, BP).
The size of the video file BR that can be transmitted is then provided by the following equation:
BR = min (BRo, BP).

Au cours de l'étape suivante E402, on procède à une initialisation des valeurs contenues dans deux tableaux : un premier tableau, de dimension R, dans lequel sont stockées les valeurs de résolution admissibles d'une image, et un second tableau, de dimension FR, dans lequel sont stockées différentes valeurs du nombre d'images par seconde.  During the next step E402, the values contained in two tables are initialized: a first table, of dimension R, in which are stored the admissible resolution values of an image, and a second table, of dimension FR, in which different values of the number of frames per second are stored.

Plus particulièrement, les valeurs de résolution de l'image qui sont contenues dans le premier tableau sont admissibles dans le sens où ces valeurs de résolution sont inférieures ou égales à la résolution de l'unité de visualisation 23 de la machine client 2 (figure 1) et qui est mémorisée dans l'unité de stockage 21.  More particularly, the resolution values of the image that are contained in the first table are admissible in the sense that these resolution values are less than or equal to the resolution of the display unit 23 of the client machine 2 (FIG. ) and which is stored in the storage unit 21.

On choisira par exemple un premier tableau dont la première valeur est égale à la résolution des données vidéo mémorisées dans l'unité de stockage 5 de la figure 1 et constituant la version originale de la vidéo mentionnée plus haut, dans le cas, bien entendu, où cette valeur est considérée comme admissible.  For example, a first table whose first value is equal to the resolution of the video data stored in the storage unit 5 of FIG. 1 and constituting the original version of the video mentioned above, in the case, of course, where this value is considered eligible.

Les autres valeurs admissibles figurant dans ce tableau sont sélectionnées au préalable et, dans le cas où la dimension du tableau est trois, les deux dernières valeurs correspondent à une résolution de 352 colonnes et 288 lignes, pour l'une, et 176 colonnes et 144 lignes, pour l'autre.  The other allowable values in this table are selected beforehand and, in the case where the dimension of the array is three, the last two values correspond to a resolution of 352 columns and 288 rows, for one, and 176 columns and 144 columns. lines, for the other.

Le second tableau contenant différentes valeurs du nombre d'images par seconde est par exemple, lui aussi, de dimension trois et la première valeur de ce tableau est égale au nombre d'images par seconde de la version originale de la vidéo mémorisée dans l'unité de stockage 5 de la figure 1.  The second array containing different values of the number of frames per second is, for example, also of dimension three and the first value of this array is equal to the number of frames per second of the original version of the video stored in the storage unit 5 of FIG.

<Desc/Clms Page number 32> <Desc / Clms Page number 32>

Les deux autres valeurs sont respectivement égales à 20 et 10 images par seconde.  The other two values are respectively 20 and 10 frames per second.

Plus particulièrement, au cours de cette étape, on procède à l'initialisation de deux variables d'indices, fr et r, correspondant respectivement au second et au premier tableau susvisé.  More particularly, during this step, we proceed to the initialization of two index variables, fr and r, respectively corresponding to the second and the first table above.

Chaque variable d'indice est initialisée à la première valeur contenue dans le tableau correspondant.  Each index variable is initialized to the first value contained in the corresponding table.

Au cours de l'étape suivante E403, on détermine la capacité mémoire totale ME qui est nécessaire aux opérations de décodage d'un nombre donné d'unités élémentaires de données codées, opérations qui sont décrites en référence à la figure 3b.  During the next step E403, the total memory capacity ME which is necessary for the decoding operations of a given number of coded data elementary units is determined, operations which are described with reference to FIG. 3b.

Cette capacité mémoire est notamment celle qui est nécessaire au stockage des macro-blocs de données décodés en vue de leur visualisation, comme exposé ci-dessus en référence à l'étape E333 de la figure 3b.  This memory capacity is in particular that which is necessary for storing decoded macro-data blocks for display, as explained above with reference to step E333 of FIG. 3b.

Par exemple, le nombre donné de macro-blocs correspondra au nombre de macro-blocs qui constituent une image.  For example, the given number of macroblocks will correspond to the number of macroblocks that make up an image.

Dans l'exemple de réalisation, les macro-blocs constituant une image sont codés en mode Intra ou en mode Inter.  In the exemplary embodiment, the macroblocks constituting an image are coded in Intra mode or in Inter mode.

Comme le décodage d'un macro-bloc qui a été codé en mode Inter nécessite le décodage d'un macro-bloc de différence codé en mode Intra, la capacité mémoire dite élémentaire nécessaire pour décoder un macro-bloc codé en mode Inter est plus élevée que celle nécessaire pour décoder un macro-bloc codé en mode Intra.  Since the decoding of a macro-block which has been coded in Inter mode requires the decoding of a coded difference macro-block in Intra mode, the so-called basic memory capacity necessary to decode a coded macroblock in Inter mode is no longer necessary. higher than that required to decode a coded macroblock in Intra mode.

Dans le cas présent, la capacité mémoire totale nécessaire pour décoder une image sera égale à celle nécessaire pour décoder une image codée en mode Inter dans laquelle tous les macro-blocs sont codés en mode Inter, ce qui correspond au cas le plus défavorable.  In this case, the total memory capacity needed to decode an image will be equal to that needed to decode an Inter coded image in which all macroblocks are coded in Inter mode, which is the worst case.

Cette capacité mémoire totale est fournie par l'équation suivante : ME = MB * MElnter, où MB est le nombre de macro-blocs d'une image et MElnter l'estimation de la capacité mémoire élémentaire nécessaire pour décoder le macro-bloc codé en mode Inter.  This total memory capacity is provided by the following equation: ME = MB * MElnter, where MB is the number of macroblocks of an image and MElnter the estimate of the elementary memory capacity necessary to decode the coded macroblock into Inter mode

<Desc/Clms Page number 33> <Desc / Clms Page number 33>

L'estimation de la capacité mémoire élémentaire MEnter d'un macrobloc est effectuée en déterminant la capacité mémoire nécessaire pour construire le macro-bloc compensé et le macro-bloc de différence mentionnés en référence à la figure 3b.  The estimation of the elementary memory capacity MEnter of a macroblock is performed by determining the memory capacity necessary to construct the compensated macroblock and the macroblock of difference mentioned with reference to FIG. 3b.

Les opérations de décodage du macro-bloc compensé décrites aux étapes E327, E328 de la figure 3b débutent d'abord par le décodage statistique du vecteur de mouvement différentiel.  The decoded operations of the compensated macroblock described in steps E327, E328 of FIG. 3b begin first with the statistical decoding of the differential motion vector.

Le décodage statistique VLD (étape E328) nécessite la mise en mémoire de la table définie dans le standard Information technology- Generic coding of audio-visual objects = part2 : visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000.  The VLD statistical decoding (step E328) requires the storage of the table defined in the standard Information technology-Generic coding of audio-visual objects = part2: visual, ISO / IEC JTC 1 / SC 29 / WG11 N3056, December 2000.

De manière à pouvoir construire le macro-bloc compensé lors de l'étape E329, il est nécessaire d'avoir préalablement stocké en mémoire les valeurs du macro-bloc de l'image précédente.  In order to be able to build the compensated macroblock during step E329, it is necessary to have previously stored in memory the values of the macroblock of the previous image.

Le décodage du macro-bloc de différence (E330) prévoit d'abord de décoder statistiquement les coefficients selon l'étape E321 de la figure 3b (décodage en mode Intra).  The decoding of the difference macro-block (E330) firstly provides for statistically decoding the coefficients according to step E321 of FIG. 3b (Intra mode decoding).

Le décodage VLD, étape E322 nécessite la mise en mémoire de deux tables définies dans le standard Information technology-Generic coding of audio-visual abjects = part2 : visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000.  VLD decoding, step E322 requires the storage of two tables defined in the standard Information technology-Generic coding of audio-visual abjects = part2: visual, ISO / IEC JTC 1 / SC 29 / WG11 N3056, December 2000.

L'une des tables correspond aux coefficients de luminance et l'autre table, aux coefficients de chrominance.  One of the tables corresponds to the luminance coefficients and the other table to the chrominance coefficients.

La quantification inverse décrite par l'étape E323 fait intervenir, quant à elle, une matrice de pondération W [l] [u] [v].  The inverse quantization described by the step E323 involves, for its part, a weighting matrix W [1] [u] [v].

En outre, le macro-bloc reconstruit nécessite d'être mémorisé jusqu'à ce que tous les macro-blocs de l'image soient décodés.  In addition, the reconstructed macroblock needs to be memorized until all macroblocks of the image are decoded.

La table ci-dessous indique de façon détaillée la capacité mémoire élémentaire nécessaire pour décoder un macro-bloc qui a été codé selon le mode de codage le plus consommateur de capacité mémoire, à savoir le mode Inter :  The table below details the elementary memory capacity needed to decode a macro-block that has been encoded according to the most memory-intensive encoding mode, namely the Inter mode:

<Desc/Clms Page number 34> <Desc / Clms Page number 34>

Figure img00340001
Figure img00340001

<tb>
<tb> Traitement <SEP> mémoire
<tb> VLD <SEP> 1112
<tb> Macro-bloc <SEP> image <SEP> précédente <SEP> 16*16*8 <SEP> = <SEP> 2048
<tb> Table <SEP> VLD <SEP> luminance <SEP> 218
<tb> Table <SEP> VLD <SEP> chrominance <SEP> 237
<tb> Matrice <SEP> de <SEP> pondération <SEP> 16*16*8 <SEP> = <SEP> 3072
<tb> Macro-bloc <SEP> sauvegarde <SEP> 16*16*8 <SEP> = <SEP> 2048
<tb> Total <SEP> 8735
<tb>
<Tb>
<tb> Processing <SEP> memory
<tb> VLD <SEP> 1112
<tb> Macro-block <SEP> previous <SEP><SEP> 16 * 16 * 8 <SEP> = <SEP> 2048
<tb> Table <SEP> VLD <SEP> luminance <SEP> 218
<tb> Table <SEP> VLD <SEP> chrominance <SEP> 237
<tb> Matrix <SEP> of <SEP> weighting <SEP> 16 * 16 * 8 <SEP> = <SEP> 3072
<tb> Macro-block <SEP> backup <SEP> 16 * 16 * 8 <SEP> = <SEP> 2048
<tb> Total <SEP> 8735
<Tb>

Dans l'exemple qui vient d'être décrit, la capacité mémoire totale d'une image a été déterminée en fonction, d'une part, de la capacité mémoire élémentaire la plus élevée parmi les différentes capacités mémoires élémentaires déterminées pour chacun des modes de codage et, d'autre part, du nombre d'unités élémentaires (macro-blocs) constituant l'image. In the example just described, the total memory capacity of an image was determined as a function, on the one hand, of the highest elementary memory capacity among the different elementary memory capacities determined for each of the modes of memory. coding and, secondly, the number of elementary units (macroblocks) constituting the image.

Les calculs permettant d'aboutir à la capacité mémoire totale ME se trouvent ainsi simplifiés.  The calculations making it possible to arrive at the total memory capacity ME are thus simplified.

Cependant, on peut également prévoir de déterminer cette capacité mémoire totale ME au plus près en tenant compte, d'une part des différentes capacités mémoires élémentaires qui ont été obtenues respectivement pour les différents modes de codage utilisés et, d'autre part, du nombre d'unités élémentaires de données (macro-blocs) codées selon chacun de ces modes de codage.  However, it is also possible to determine this total memory capacity ME as closely as possible, taking into account, on the one hand, the different elementary memory capacities that have been obtained respectively for the various coding modes used and, on the other hand, the number of elementary data units (macroblocks) coded according to each of these coding modes.

Il convient de noter que le nombre de modes de codage différents peut être supérieur à deux, voire être unique.  It should be noted that the number of different coding modes may be greater than two, or even be unique.

De retour à l'algorithme de la figure 4a, dès lors que la capacité mémoire totale ME a été déterminée, l'étape E403 est suivie d'une étape E404.  Returning to the algorithm of FIG. 4a, since the total memory capacity ME has been determined, the step E403 is followed by a step E404.

Au cours de cette étape, un test est pratiqué afin de déterminer si la capacité mémoire totale ME ainsi obtenue pour effectuer le décodage d'une image faisant partie d'une vidéo demandée par l'utilisateur et codée avec les paramètres de codage courants est inférieure ou égale à une capacité mémoire prédéterminée (M).  During this step, a test is performed to determine whether the total memory capacity ME thus obtained for decoding an image that is part of a video requested by the user and encoded with the current coding parameters is less than or equal to a predetermined memory capacity (M).

<Desc/Clms Page number 35> <Desc / Clms Page number 35>

On notera que les paramètres de codage courants sont, lors de la première exécution de la boucle de l'algorithme, ceux initialisés à l'étape E402.  It will be noted that the current coding parameters are, during the first execution of the loop of the algorithm, those initialized in step E402.

Par la suite, les valeurs des paramètres sont fournies par les étapes E409 et E411.  Subsequently, the parameter values are provided by steps E409 and E411.

En particulier, on procède à la comparaison entre la capacité mémoire ME qui vient d'être déterminée et la capacité mémoire M de la machine client 2 afin de s'assurer que la capacité mémoire M de cette machine client sera suffisante pour stocker des données vidéo requises par l'utilisateur et qui doivent être décodées.  In particular, the memory capacity ME that has just been determined is compared with the memory capacity M of the client machine 2 to ensure that the memory capacity M of this client machine is sufficient to store video data. required by the user and which must be decoded.

Dans l'affirmative, l'étape E404 est suivie d'une étape E405 au cours de laquelle on effectue le codage des données vidéo suivant les paramètres de codage récupérés à l'étape E400, ainsi que les valeurs courantes du nombre d'images par seconde (fr) et de la résolution de l'image (r), ces valeurs ayant été initialisées à l'étape E402.  If so, the step E404 is followed by a step E405 during which the coding of the video data is carried out according to the coding parameters recovered in step E400, as well as the current values of the number of images per second (fr) and the resolution of the image (r), these values having been initialized in step E402.

Au cours de l'étape suivante E406, on procède à un décodage des données vidéo codées lors de l'exécution de l'étape E405, de manière à obtenir une version de la vidéo au format YUV.  In the next step E406, the coded video data is decoded during the execution of step E405, so as to obtain a version of the video in YUV format.

Au cours de l'étape suivante E407, on procède à une quantification de la qualité des données vidéo ainsi compressées.  In the next step E407, the quality of the video data thus compressed is quantized.

Par exemple, la différence de qualité entre deux vidéos sera estimée en utilisant la notion de rapport signal sur bruit notée PSNR ("Peak Signal to Noise Ratio") et fournie par l'équation suivante :

Figure img00350001

où q, désigne un pixel de l'image décodée, p, un pixel de l'image originale, N le nombre de pixels de l'image et Y la dynamique du signal original, correspondant dans le cas présent à huit bits. For example, the difference in quality between two videos will be estimated using the notion of signal-to-noise ratio (PSNR) and provided by the following equation:
Figure img00350001

where q, denotes a pixel of the decoded image, p, a pixel of the original image, N the number of pixels of the image and Y the dynamics of the original signal, corresponding in this case to eight bits.

<Desc/Clms Page number 36> <Desc / Clms Page number 36>

Le PSNR fournit une mesure quantitative de la qualité de l'image reconstruite. Elle est déterminée à partir du rapport de l'amplitude maximale du signal sur l'erreur quadratique.  The PSNR provides a quantitative measure of the quality of the reconstructed image. It is determined from the ratio of the maximum amplitude of the signal to the squared error.

On remarquera que d'autres méthodes d'estimation d'une qualité peuvent bien entendu être envisagées.  It should be noted that other methods of estimating a quality can of course be envisaged.

On peut ainsi, par exemple, établir un modèle en déterminant la qualité de différentes vidéos de test pour lesquelles on fait varier le ou les paramètres de codage.  For example, it is possible to establish a model by determining the quality of different test videos for which the coding parameter or parameters are varied.

Ensuite, pour chaque vidéo à transmettre, on adapte le ou les paramètres de codage selon l'invention et, en fonction du type de la vidéo et du modèle précité, on en déduit la qualité de la vidéo codée avec ce ou ces paramètres.  Then, for each video to be transmitted, the coding parameter or parameters according to the invention are adapted and, depending on the type of the video and the aforementioned model, the quality of the video coded with this or these parameters is deduced therefrom.

En ce qui concerne le PSNR, il convient de noter que le nombre de pixels de l'image d'origine doit être le même que celui de l'image décodée.  Regarding the PSNR, it should be noted that the number of pixels of the original image must be the same as that of the decoded image.

Pourtant, ceci n'est pas toujours vrai dans la mesure où le procédé selon l'invention permet de modifier le paramètre de codage qu'est la résolution de l'image.  However, this is not always true insofar as the method according to the invention makes it possible to modify the coding parameter that is the resolution of the image.

Par conséquent, il sera nécessaire en cas de différence entre le nombre de pixels de l'image d'origine et celui de l'image décodée d'introduire un processus de sous-échantillonnage spatial, afin de ramener la résolution de l'image d'origine à celle de l'image décodée.  Therefore, it will be necessary if there is a difference between the number of pixels of the original image and that of the decoded image to introduce a spatial subsampling process, in order to reduce the resolution of the image of the image. origin to that of the decoded image.

La valeur du PSNR est déterminée pour chaque image de la vidéo.  The PSNR value is determined for each frame of the video.

On aura ainsi une image de bonne qualité en basant le choix de la version des données à envoyer sur la valeur du PSNR.  We will thus have a good quality image by basing the choice of the version of the data to be sent on the value of the PSNR.

On notera qu'il serait possible de déterminer la valeur du PSNR pour chaque unité élémentaire de données constituant une image et ensuite d'en faire la somme pour déduire la valeur du PSNR de l'image considérée.  It should be noted that it would be possible to determine the value of the PSNR for each elementary unit of data constituting an image and then to sum it to deduce the PSNR value of the image considered.

En calculant la valeur du PSNR sur chaque unité élémentaire de données (macro-bloc), on trouvera des macro-blocs qui seront de bonne qualité et d'autres de moins bonne qualité et il faudra alors effectuer la moyenne des valeurs PSNR des macro-blocs de l'image.  By calculating the value of the PSNR on each elementary unit of data (macro-block), one will find macro-blocks which will be of good quality and others of less good quality and it will then be necessary to average the PSNR values of the macro-blocks. blocks of the image.

<Desc/Clms Page number 37> <Desc / Clms Page number 37>

Cette méthode occasionne toutefois plus de calculs que celle consistant à calculer la valeur du PSNR pour l'image de façon globale.  This method, however, causes more calculations than calculating the PSNR value for the image overall.

Etant donné que l'on s'intéresse à la détermination de la qualité sur un segment de vidéo donné, on va calculer une valeur moyenne de PSNR sur ce segment.  Since we are interested in the determination of the quality on a given video segment, we will calculate an average value of PSNR on this segment.

Par conséquent, on fait intervenir un processus de sous- échantillonnage temporel pour ramener le nombre d'images par seconde de la vidéo originale au nombre d'images par seconde de l'image décodée.  Therefore, a time sub-sampling process is used to bring the number of frames per second of the original video back to the number of frames per second of the decoded picture.

Une fois que l'on a estimé la qualité moyenne d'un segment de vidéo donné en comparant les images décodées de ce segment qui ont été préalablement codées avec les paramètres de codage précités par rapport aux images correspondantes non codées, on mémorise, dans l'unité de stockage temporaire 13 de la figure 1, la valeur du PSNR moyen, les données numériques constitutives de la vidéo compressée avec les paramètres de codage.  Once the average quality of a given video segment has been estimated by comparing the decoded images of this segment which have been previously coded with the above coding parameters with respect to the corresponding uncoded images, it is memorized the temporary storage unit 13 of FIG. 1, the value of the average PSNR, the digital data constituting the video compressed with the coding parameters.

Au cours de l'étape suivante E408, on procède à un test afin de déterminer si la résolution courante de l'image, r, correspond à la dernière valeur figurant dans le premier tableau des résolutions admissibles de l'image.  In the next step E408, a test is made to determine whether the current resolution of the image, r, is the last value in the first table of acceptable resolutions of the image.

Dans la négative, l'étape E408 est suivie d'une étape E409 au cours de laquelle on incrémente la résolution courante de l'image à la valeur suivante figurant dans le tableau considéré.  If not, step E408 is followed by a step E409 in which the current resolution of the image is incremented to the next value in the table under consideration.

On notera que lors de l'exécution de la première boucle de l'algorithme de la figure 4a, la valeur r initialisée lors de l'étape E402 correspond à la première valeur du premier tableau et donc cette étape E409 est exécutée.  It will be noted that during the execution of the first loop of the algorithm of FIG. 4a, the value r initialized during the step E402 corresponds to the first value of the first array and thus this step E409 is executed.

L'étape E403 décrite ci-dessus est alors de nouveau exécutée afin de déterminer la capacité mémoire totale ME nécessaire pour décoder les données vidéo requises par l'utilisateur avec les paramètres de codage déterminés, compte tenu de ce qui précède.  The step E403 described above is then performed again in order to determine the total memory capacity ME necessary to decode the video data required by the user with the determined coding parameters, taking into account the above.

Le paramètre de codage qui correspond à la résolution de l'image vient d'être modifié, tandis que l'autre paramètre de codage correspondant au nombre d'images par seconde reste quant à lui inchangé.  The coding parameter corresponding to the resolution of the image has just been modified, while the other coding parameter corresponding to the number of images per second remains unchanged.

<Desc/Clms Page number 38> <Desc / Clms Page number 38>

On comprend ainsi que, lors de l'exécution de cette boucle de l'algorithme, toutes les valeurs de résolution de l'image indiquées dans le premier tableau mentionné ci-dessus sont sélectionnées et conduisent, dans chaque cas, à la détermination d'une capacité mémoire particulière.  It is thus understood that, during the execution of this loop of the algorithm, all the resolution values of the image indicated in the first table mentioned above are selected and lead, in each case, to the determination of a particular memory capacity.

On notera que dans l'exemple décrit ici, un seul paramètre de codage est modifié à chaque fois bien que l'on puisse également influer sur l'autre paramètre de codage que constitue le nombre d'images par seconde.  Note that in the example described here, only one coding parameter is changed each time although it is also possible to influence the other encoding parameter that is the number of frames per second.

Pour cette combinaison de paramètres de codage dans laquelle seul un paramètre varie, on estime la qualité de chaque image et, plus généralement, d'un segment de données vidéo donné.  For this combination of coding parameters in which only one parameter varies, the quality of each picture and, more generally, of a given video data segment is estimated.

Cependant, on pourrait également choisir de modifier simultanément plusieurs paramètres de codage distincts au sein d'une même combinaison de paramètres de codage et, pour chaque combinaison de paramètres de codage ainsi modifiés, on estime la qualité de l'image.  However, it would also be possible to simultaneously modify several different coding parameters within one and the same combination of coding parameters, and for each combination of coding parameters thus modified, the quality of the image is estimated.

On notera que, lors de l'exécution de l'étape E404, si le test pratiqué est négatif, alors l'étape E404 est immédiatement suivie de l'étape E408 décrite ci-dessus.  Note that, when performing step E404, if the test performed is negative, then step E404 is immediately followed by step E408 described above.

De manière générale, l'algorithme de la figure 4a permet de prendre une décision quant à savoir si un paramètre de codage peut être utilisé pour coder les données vidéo requises par l'utilisateur, compte tenu de : - la capacité mémoire totale déterminée lors de l'étape E403 en fonction de ce paramètre et - la comparaison de cette capacité mémoire avec une capacité mémoire prédéterminée (capacité mémoire totale de la machine client 2), lors de l'étape E404.  In general, the algorithm of FIG. 4a makes it possible to take a decision as to whether an encoding parameter can be used to code the video data required by the user, taking into account: the total memory capacity determined during step E403 according to this parameter and - the comparison of this memory capacity with a predetermined memory capacity (total memory capacity of client machine 2), during step E404.

De retour à l'algorithme de la figure 4a, lorsque le test pratiqué à l'étape E408 est positif, cela signifie que toutes les valeurs de résolutions d'image fournies par le premier tableau précité ont été sélectionnées, alors cette étape est suivie d'une étape E410 au cours de laquelle un autre test est pratiqué.  Returning to the algorithm of FIG. 4a, when the test performed in step E408 is positive, this means that all the image resolution values provided by the first aforementioned table have been selected, then this step is followed by a step E410 during which another test is performed.

Ce test a pour but de déterminer si la valeur courante du nombre d'images par seconde (fr) correspond à la dernière valeur du second tableau  The purpose of this test is to determine if the current value of the number of frames per second (fr) is the last value of the second array

<Desc/Clms Page number 39><Desc / Clms Page number 39>

précité dans lequel sont stockées différentes valeurs du nombre d'images par seconde.  in which are stored different values of the number of frames per second.

Dans la négative, cette étape est suivie d'une étape E411 au cours de laquelle on incrémente la valeur courante du nombre d'images par seconde afin de sélectionner une autre valeur du second tableau.  If not, this step is followed by a step E411 in which the current value of the number of frames per second is incremented to select another value of the second array.

L'étape E403 est alors de nouveau exécutée et permet de déterminer, pour ce nouveau paramètre de codage, la capacité mémoire totale nécessaire pour décoder les données vidéo requises par l'utilisateur avec ce paramètre de codage et les autres paramètres de codage courants précités.  Step E403 is then executed again and it is possible to determine, for this new coding parameter, the total memory capacity necessary for decoding the video data required by the user with this coding parameter and the other current coding parameters mentioned above.

On notera que dans ce cas, la valeur de la résolution de l'image correspond à la dernière valeur du premier tableau et que les différentes valeurs du nombre d'images par seconde figurant dans le second tableau vont successivement être sélectionnées, tandis que la valeur de la résolution de l'image restera la même.  Note that in this case, the value of the resolution of the image corresponds to the last value of the first array and the different values of the number of images per second appearing in the second array will successively be selected, while the value of the resolution of the image will remain the same.

Toutefois, on peut envisager de modifier l'algorithme de la figure 4a afin que différentes autres combinaisons de paramètres de codage puissent être envisagées.  However, it is possible to modify the algorithm of FIG. 4a so that different other combinations of coding parameters can be envisaged.

Par exemple, les différentes valeurs successives du nombre d'images par seconde figurant dans le second tableau peuvent être combinées avec la première et ensuite la seconde valeur de la résolution de l'image figurant dans le premier tableau.  For example, the different successive values of the number of frames per second in the second table can be combined with the first and then the second value of the resolution of the image in the first table.

On notera également que la première boucle constituée des étapes E403 à E409 pourrait également prendre en compte le paramètre de codage que constitue le nombre d'images par seconde de la vidéo demandée par l'utilisateur au lieu de prendre en compte la résolution de l'image.  Note also that the first loop consisting of steps E403 to E409 could also take into account the encoding parameter that is the number of frames per second of the video requested by the user instead of taking into account the resolution of the picture.

De retour à l'étape E41 0, lorsque le test pratiqué est positif, ceci signifie que toutes les valeurs du nombre d'images par seconde figurant dans le second tableau ont été sélectionnées et l'on passe alors à l'étape suivante E412.  Returning to step E41 0, when the test is positive, this means that all the values of the number of frames per second in the second table have been selected, and then the next step E412 is selected.

Au cours de cette étape, on effectue un tri par ordre décroissant des différentes versions de données vidéo compressées suivant leur valeur de PSNR.  During this step, the various versions of compressed video data are sorted in descending order according to their value of PSNR.

<Desc/Clms Page number 40> <Desc / Clms Page number 40>

Par exemple, la version de données vidéo compressée qui sera transmise du dispositif 4 selon l'invention à la machine client 2 de la figure 1 sera celle qui bénéficie du PSNR le plus élevé.  For example, the compressed video data version that will be transmitted from the device 4 according to the invention to the client machine 2 of FIG. 1 will be the one that has the highest PSNR.

L'étape E412 permet de sélectionner la qualité la meilleure parmi toutes celles qui ont été déterminées.  Step E412 makes it possible to select the best quality among all those that have been determined.

Ceci met fin à l'algorithme de la figure 4a.  This ends the algorithm of Figure 4a.

On notera que l'étape E209 de l'algorithme de la figure 2 est alors exécutée pour transmettre les données vidéo requises par l'utilisateur et qui ont été adaptées à la capacité mémoire de la machine client 2.  It will be noted that the step E209 of the algorithm of FIG. 2 is then executed to transmit the video data required by the user and which has been adapted to the memory capacity of the client machine 2.

Il convient de noter que l'algorithme de la figure 4a peut également prendre en compte un seul paramètre de codage ou, au contraire, tenir compte d'autres paramètres de codage tels que par exemple le nombre d'images qui ont été codées en mode inter.  It should be noted that the algorithm of FIG. 4a can also take into account a single coding parameter or, on the contrary, take into account other coding parameters such as, for example, the number of images that have been coded in the same mode. inter.

Ainsi, on adapte un ou plusieurs paramètres de codage pour le codage des données vidéo ou, de manière plus générale de données multimédia requises par l'utilisateur, afin que la machine client 2 soit apte à décoder ces données compressées, compte tenu de la capacité mémoire dont dispose l'utilisateur.  Thus, one or more coding parameters are adapted for encoding the video data or, more generally, multimedia data required by the user, so that the client machine 2 is able to decode this compressed data, taking into account the capacity memory available to the user.

Le ou les paramètres de codage sur le (s) quel (s) l'invention intervient doivent bien entendu avoir une influence sur la capacité mémoire nécessaire au décodage des données multimédia demandées par l'utilisateur.  The coding parameter (s) on which the invention (s) intervene must of course have an influence on the memory capacity necessary for the decoding of the multimedia data requested by the user.

Il convient de noter que si deux modes de codage interviennent dans le codage des données, l'invention permet de ne s'intéresser qu'à l'un des paramètres de codage qui exerce une influence sur un seul des modes de codage.  It should be noted that if two modes of coding intervene in the coding of the data, the invention makes it possible to be interested only in one of the coding parameters which exerts an influence on only one of the modes of coding.

La figure 4b illustre une variante de réalisation de l'algorithme de la figure 4a.  FIG. 4b illustrates an alternative embodiment of the algorithm of FIG. 4a.

L'algorithme de la figure 4b diffère de celui de la figure 4a par les étapes E430, E434 et E435 qui seront détaillées ci-après.  The algorithm of FIG. 4b differs from that of FIG. 4a by the steps E430, E434 and E435 which will be detailed below.

Les étapes E431, E432, E433 et E436 à E443 correspondant, quant à elles, aux étapes respectives E401, E402, E403 et E405 à E412, elles ne seront pas de nouveau décrites.  The steps E431, E432, E433 and E436 to E443 corresponding, in turn, respective steps E401, E402, E403 and E405 to E412, they will not be described again.

<Desc/Clms Page number 41> <Desc / Clms Page number 41>

L'algorithme de la figure 4b comporte différentes instructions ou portions de code logiciel correspondant à des étapes du procédé de détermination d'un paramètre de codage de données selon l'invention.  The algorithm of FIG. 4b comprises various instructions or portions of software code corresponding to steps of the method of determining a data coding parameter according to the invention.

Le programme informatique qui est basé sur cet algorithme est mémorisé dans l'unité de stockage temporaire de données 13 de la figure 1 et exécuté par l'unité 17 sous le contrôle de l'unité de commande 19.  The computer program which is based on this algorithm is stored in the temporary data storage unit 13 of FIG. 1 and executed by the unit 17 under the control of the control unit 19.

Ce programme fait partie du programme"Progr"précité en référence à la figure 2 et est également stocké dans l'appareil de la figure 5.  This program is part of the program "Progr" above with reference to Figure 2 and is also stored in the apparatus of Figure 5.

L'exécution du programme informatique basé sur cet algorithme va mettre en oeuvre le procédé permettant d'adapter un ou plusieurs paramètres de codage qui vont être utilisés pour le codage des données transmises à la machine client, en fonction, d'une part, de la capacité mémoire de la machine client et, d'autre part, de la capacité de calcul de cette dernière.  The execution of the computer program based on this algorithm will implement the method for adapting one or more coding parameters that will be used for the coding of the data transmitted to the client machine, as a function, on the one hand, of the memory capacity of the client machine and, on the other hand, the computing capacity of the latter.

Par ailleurs, ce procédé peut permettre également d'adapter ce ou ces paramètres de codage à la résolution de l'écran de la machine client 2, ainsi qu'aux ressources disponibles sur le réseau de communication 3, à savoir la bande passante.  Moreover, this method can also make it possible to adapt this or these coding parameters to the resolution of the screen of the client machine 2, as well as to the resources available on the communication network 3, namely the bandwidth.

Lors de l'exécution de la première étape E430, la récupération du contexte dans lequel les données vont être transmises du dispositif 4 du serveur 1 à la machine client 2 (figure 1) comporte, en plus de celle décrite à l'étape E400 de la figure 4a, l'obtention de la capacité de calcul C de la machine client 2.  During the execution of the first step E430, the recovery of the context in which the data will be transmitted from the device 4 of the server 1 to the client machine 2 (FIG. 1) comprises, in addition to that described in step E400 of FIG. FIG. 4a, obtaining the computing capacity C of the client machine 2.

Au cours de l'étape E434, on détermine la complexité de calcul, notée 0, du processus de décodage d'une séquence d'images, également appelée segment d'images et qui correspond à un nombre d'images codées pour un intervalle de temps prédéterminé.  During the step E434, the computation complexity, denoted 0, of the decoding process of a sequence of images, also called image segment, which corresponds to a number of coded images for an interval of predetermined time.

Dans l'exemple décrit ici, la résolution temporelle étant un paramètre de codage, on fixe l'intervalle de temps par exemple à 1 s et on compte le nombre d'images codées pendant cet intervalle de temps.  In the example described here, the temporal resolution being a coding parameter, the time interval is fixed for example at 1 s and the number of coded images during this time interval is counted.

Le nombre d'images est par exemple égal à trente.  The number of images is for example equal to thirty.

Cette complexité de calcul 0 est également appelée complexité de décodage, et sa détermination correspond à la détermination du nombre total  This calculation complexity 0 is also called decoding complexity, and its determination corresponds to the determination of the total number

<Desc/Clms Page number 42><Desc / Clms Page number 42>

d'opérations qui sont à effectuer pendant un intervalle de temps prédéterminé en vue de décoder une pluralité d'unités élémentaires de données codées. Ces unités élémentaires sont, par exemple, les macro-blocs définis plus haut.  operations that are to be performed during a predetermined time interval in order to decode a plurality of elementary units of coded data. These elementary units are, for example, the macroblocks defined above.

Pour déterminer cette complexité de décodage, on va s'intéresser à un segment composé de Nlntra + N, nter images.  To determine this decoding complexity, we will look at a segment composed of Nlntra + N, nter images.

La complexité d'un tel segment est fournie par l'équation suivante :

Figure img00420001

où : est lue nombre d'images codées en mode Intra pour le segment considéré, le segment correspond à un nombre donné d'images par seconde, - NInter est le nombre d'images codées en mode Inter ou prédictif pour le segment considéré, - MBIntra est le nombre de macro-blocs codés en mode Intra dans une image codée en mode Intra, - OIntra est la complexité de décodage d'un macro-bloc codé en mode Intra, - MBest le nombre de macro-blocs codés en mode Intra dans une image codée en mode Inter, - MB'Inter est le nombre de macro-blocs codés en mode Inter dans une image codée en mode Inter, et - OInter est la complexité de décodage d'un macro-bloc codé en mode Inter. The complexity of such a segment is provided by the following equation:
Figure img00420001

where: is read number of images coded in Intra mode for the segment in question, the segment corresponds to a given number of images per second, - NInter is the number of coded images in Inter or predictive mode for the segment considered, - MBIntra is the number of macroblocks encoded in Intra mode in an Intra mode encoded image, - OIntra is the decoding complexity of an Intra mode encoded macroblock, - MB is the number of Intra mode coded macroblocks. in an Inter mode coded picture, - MB'Inter is the number of Inter mode encoded macroblocks in an Inter mode coded picture, and - OInter is the decoding complexity of a coded macroblock in Inter mode.

On s'aperçoit ainsi que la détermination de la complexité de décodage du segment d'images défini ci-dessus passe par une étape préalable d'analyse du mode de codage utilisé pour coder chaque unité élémentaire de données (macro-bloc). Ensuite, il s'agit de déterminer, pour chaque unité élémentaire de données qui a été codée selon un mode de codage différent, la complexité de décodage de cette unité élémentaire de données, c'est-à-dire le nombre élémentaire d'opérations qu'il est nécessaire d'effectuer pour procéder à son décodage.  It can thus be seen that the determination of the decoding complexity of the image segment defined above passes through a preliminary step of analysis of the coding mode used to code each elementary unit of data (macroblock). Next, it is a question of determining, for each elementary unit of data which has been coded according to a different coding mode, the decoding complexity of this elementary unit of data, that is to say the basic number of operations. that it is necessary to perform to proceed to its decoding.

<Desc/Clms Page number 43> <Desc / Clms Page number 43>

La détermination de la complexité de décodage du segment susvisé passe ensuite par une étape au cours de laquelle on identifie le nombre d'unités élémentaires de données codées selon chacun des modes de codage différents et, connaissant la complexité de décodage pour chacun de ces modes de codage, on en déduit le nombre total d'opérations qu'il est nécessaire d'effectuer pendant l'intervalle de temps prédéterminé pour décoder la pluralité d'unités élémentaires de données codées constituant le segment défini plus haut.  Determining the decoding complexity of the abovementioned segment then goes through a step during which the number of elementary data units coded according to each of the different coding modes is identified and, knowing the decoding complexity for each of these modes of coding, we deduce the total number of operations that are necessary to perform during the predetermined time interval to decode the plurality of elementary units of coded data constituting the segment defined above.

Dans l'exemple décrit ici, on s'intéresse dans un premier temps au mode de codage d'une image puis, selon que celle-ci est codée en mode Intra ou en mode Inter, on procède de la façon suivante : - Si l'image est codée en mode Intra, alors il suffit de prendre en compte la complexité de décodage d'un macro-bloc et le nombre de macroblocs contenus dans cette image, puis de multiplier le chiffre obtenu correspondant à la complexité de décodage d'une image codée en mode intra par le nombre d'images N1ntra codées suivant ce mode.  In the example described here, we are interested in a first step in the encoding mode of an image then, depending on whether it is encoded in Intra mode or Inter mode, we proceed as follows: - If image is encoded in Intra mode, then it is enough to take into account the decoding complexity of a macro-block and the number of macroblocks contained in this image, then to multiply the obtained figure corresponding to the decoding complexity of a image encoded in intra mode by the number of N1ntra images coded according to this mode.

- Si l'image est codée en mode Inter, il faut alors rechercher à l'intérieur de chaque image le nombre de macro-blocs codés suivant le mode de codage Intra ou Inter, puis obtenir pour chaque image, d'une part, la complexité de décodage pour les macro-blocs codés selon le mode de codage Intra et, d'autre part, la complexité de décodage pour les macro-blocs codés selon le mode de codage Inter.  If the image is coded in Inter mode, then it is necessary to search inside each image for the number of macroblocks coded according to the Intra or Inter coding mode, then obtain for each image, on the one hand, the decoding complexity for macro-blocks coded according to the Intra coding mode and, on the other hand, the decoding complexity for the coded macro-blocks according to the Inter coding mode.

Il faut ensuite faire la somme de ces complexités de décodage afin d'obtenir la complexité de décodage totale d'une image codée en mode Inter. Il reste ensuite à multiplier ce chiffre par le nombre d'images codées en mode Niter.  It is then necessary to sum these decoding complexities in order to obtain the total decoding complexity of an image coded in Inter mode. It is then necessary to multiply this number by the number of images coded in Niter mode.

On notera que la détermination de la complexité de décodage d'une unité élémentaire de données telle qu'un macro-bloc varie selon que celui-ci est codé en mode Intra ou en mode Inter.  It should be noted that the determination of the decoding complexity of an elementary data unit such as a macroblock varies according to whether it is coded in Intra mode or in Inter mode.

Comme décrit ci-après, la détermination de la complexité de décodage d'une unité élémentaire de données va être détaillée suivant que le codage a lieu en mode Intra ou en mode Inter.  As described below, the determination of the decoding complexity of an elementary data unit will be detailed depending on whether the coding takes place in Intra mode or Inter mode.

<Desc/Clms Page number 44> <Desc / Clms Page number 44>

1) Codage en mode Intra
Le décodage s'effectuant bloc de données par bloc de données la complexité de décodage d'un macro-bloc est égale à la complexité liée au décodage des quatre blocs qui le composent.
1) Encoding in Intra mode
Decoding being a block of data by data block The decoding complexity of a macroblock is equal to the complexity related to the decoding of the four blocks that compose it.

Plus particulièrement, on détermine la complexité de décodage d'un bloc en comptabilisant le nombre d'opérations élémentaires intervenant dans les différents algorithmes mis en oeuvre dans le processus de décodage.  More particularly, the complexity of decoding a block is determined by counting the number of elementary operations involved in the various algorithms used in the decoding process.

Les valeurs de la complexité liée au décodage DCT sont fournies par l'article"Fast Algorithms for the Discrete Cosine Transform", E. Feig and S.  The complexity values related to DCT decoding are provided by the article "Fast Algorithms for the Discrete Cosine Transform", E. Feig and S.

Winograd, IEEE Trans. On Signal Proc., vol. 40, No. 9, September 1992. Winograd, IEEE Trans. On Signal Proc., Vol. 40, No. 9, September 1992.

La table 1 ci-dessous détaille la détermination de la complexité de décodage des différents algorithmes qui interviennent dans le décodage d'un bloc à partir des différentes opérations élémentaires.

Figure img00440001
Table 1 below details the determination of the decoding complexity of the different algorithms involved in the decoding of a block from the different elementary operations.
Figure img00440001

<tb>
<tb>
<Tb>
<Tb>

Traitement <SEP> Test <SEP> Multiplication <SEP> Addition <SEP> Affectation
<tb> VLD <SEP> 64
<tb> Inverse <SEP> Q <SEP> 192 <SEP> 256 <SEP> 192
<tb> Saturation <SEP> 128 <SEP> 64
<tb> Contrôle <SEP> 2 <SEP> 64 <SEP> 65
<tb> Inverse <SEP> DCT <SEP> 94 <SEP> 454 <SEP> 64
<tb> Total <SEP> 322 <SEP> 350 <SEP> 582 <SEP> 385
<tb>
Processing <SEP> Test <SEP> Multiplication <SEP> Addition <SEP> Assignment
<tb> VLD <SEP> 64
<tb> Inverse <SEP> Q <SEP> 192 <SEP> 256 <SEP> 192
<tb> Saturation <SEP> 128 <SEP> 64
<tb> Control <SEP> 2 <SEP> 64 <SEP> 65
<tb> Inverse <SEP> DCT <SEP> 94 <SEP> 454 <SEP> 64
<tb> Total <SEP> 322 <SEP> 350 <SEP> 582 <SEP> 385
<Tb>

Table 1
Préférentiellement, toutes ces opérations sont considérées comme élémentaires exceptée la multiplication qui est considérée comme équivalente à deux opérations élémentaires.
Table 1
Preferably, all these operations are considered elementary except for the multiplication which is considered equivalent to two elementary operations.

Ainsi, la complexité totale de décodage d'un macro-bloc (composantes de luminance) codé en mode Intra est de 4*1989=7956 opérations élémentaires.  Thus, the total complexity of decoding a macro-block (luminance components) coded in Intra mode is 4 * 1989 = 7956 elementary operations.

2) Codage en mode Inter
Dans le cas où le macro-bloc est codé en mode Inter, il faut ajouter à la complexité de décodage en mode Intra, la complexité de décodage liée,
2) Coding in Inter mode
In the case where the macroblock is coded in Inter mode, it is necessary to add to the decoding complexity in Intra mode, the linked decoding complexity,

<Desc/Clms Page number 45><Desc / Clms Page number 45>

d'une part, à la reconstruction du vecteur de mouvement à partir du vecteur de mouvement différentiel qui va être transmis à la machine client 2 de la figure 1 et, d'autre part, à la reconstruction du macro-bloc (reconstruction du macro-bloc de différence et addition de ce macro-bloc avec le macro-bloc prédit).  on the one hand, to the reconstruction of the motion vector from the differential motion vector which will be transmitted to the client machine 2 of FIG. 1 and, on the other hand, to the reconstruction of the macro-block (reconstruction of the macro difference-block and addition of this macro-block with the predicted macro-block).

La détermination de la complexité de décodage de ces processus est détaillée dans la table 2 ci-dessous qui fournit, pour chaque processus, le nombre d'opérations élémentaires qui interviennent.

Figure img00450001
The determination of the decoding complexity of these processes is detailed in table 2 below which provides, for each process, the number of elementary operations that occur.
Figure img00450001

<tb>
<tb>
<Tb>
<Tb>

Traitement <SEP> Test <SEP> Multiplication <SEP> Addition <SEP> Affectation
<tb> VLD <SEP> 2
<tb> Reconstruction <SEP> vecteur <SEP> 7 <SEP> 5 <SEP> 13 <SEP> 11
<tb> mouvement
<tb> Reconstruction <SEP> macro-bloc <SEP> 1288 <SEP> 1400 <SEP> 2328 <SEP> 1540
<tb> différence
<tb> Construction <SEP> du <SEP> macro-bloc <SEP> 512 <SEP> 256
<tb> prédit
<tb> Reconstruction <SEP> du <SEP> macro-bloc <SEP> 256 <SEP> 256
<tb> Total <SEP> 1295 <SEP> 1405 <SEP> 3109 <SEP> 2065
<tb>
Processing <SEP> Test <SEP> Multiplication <SEP> Addition <SEP> Assignment
<tb> VLD <SEP> 2
<tb> Reconstruction <SEP> vector <SEP> 7 <SEP> 5 <SEP> 13 <SEP> 11
<tb> movement
<tb> Reconstruction <SEP> Macroblock <SEP> 1288 <SEP> 1400 <SEP> 2328 <SEP> 1540
<tb> difference
<tb><SEP> Construction of the <SEP> Macro Block <SEP> 512 <SEP> 256
<tb> predicts
<tb> Rebuild <SEP> of <SEP> Macroblock <SEP> 256 <SEP> 256
<tb> Total <SEP> 1295 <SEP> 1405 <SEP> 3109 <SEP> 2065
<Tb>

Table 2
Ainsi, pour le mode Inter ou prédictif, la complexité totale de décodage d'un macro-bloc codé en mode Inter est de 7874 opérations élémentaires.
Table 2
Thus, for the Inter or Predictive mode, the total complexity of decoding a coded macro-block in Inter mode is 7874 elementary operations.

Une fois que la complexité de décodage d'un segment composé de Nlntra + Nlnter images a été déterminée, l'étape E434 est suivie d'une étape E435.  Once the decoding complexity of a segment composed of Nlntra + Nlnter images has been determined, step E434 is followed by a step E435.

Au cours de cette étape, un test est pratiqué afin de déterminer si, d'une part, la capacité mémoire totale ME obtenue pour effectuer le décodage d'une image codée avec les paramètres de codage courants est inférieure ou égale à une capacité mémoire prédéterminée M et, d'autre part, la complexité de décodage 0 obtenue est inférieure ou égale à une complexité de décodage prédéterminée C.  During this step, a test is performed to determine whether, on the one hand, the total memory capacity ME obtained for decoding an image coded with the current coding parameters is less than or equal to a predetermined memory capacity. M and, on the other hand, the decoding complexity 0 obtained is less than or equal to a predetermined decoding complexity C.

<Desc/Clms Page number 46> <Desc / Clms Page number 46>

La capacité mémoire prédéterminée et la complexité de décodage prédéterminée correspondent respectivement, dans le cas d'une architecture client-serveur, à la capacité mémoire disponible dans la machine client 2 de la figure 1 et à sa capacité de calcul.  The predetermined memory capacity and the predetermined decoding complexity respectively correspond, in the case of a client-server architecture, to the memory capacity available in the client machine 2 of FIG. 1 and to its computing capacity.

En déterminant ainsi un ou plusieurs paramètres de codage de manière adaptée à cette capacité mémoire disponible dans la machine client 2 et à sa capacité de calcul, le dispositif 4 de la figure 1 va pouvoir transmettre à la machine 2 les données requises par l'utilisateur et codées avec ce ou ces paramètres, c'est-à-dire de façon adaptée aux caractéristiques susvisées de la machine 2.  By thus determining one or more coding parameters in a manner adapted to this memory capacity available in the client machine 2 and to its computing capacity, the device 4 of FIG. 1 will be able to transmit to the machine 2 the data required by the user. and coded with this or these parameters, that is to say in a manner adapted to the aforementioned characteristics of the machine 2.

Cette adaptation du contenu des données transmises tient davantage compte des spécificités de la machine client 2 que l'adaptation qui est prévue à la figure 4a.  This adaptation of the content of the transmitted data takes more account of the specificities of the client machine 2 than the adaptation which is provided in FIG. 4a.

En référence à la figure 5, est décrit un exemple d'appareil programmable mettant en oeuvre l'invention. Cet appareil est adapté à traiter des données numériques multimédia en vue de les transmettre.  With reference to FIG. 5, an example of a programmable apparatus embodying the invention is described. This apparatus is adapted to process digital multimedia data for transmission.

Selon le mode de réalisation choisi et représenté à la figure 5, un appareil mettant en oeuvre l'invention est par exemple un micro-ordinateur 500 ou une station de travail connecté à différents périphériques, par exemple une caméra numérique 501 (ou un scanner, ou tout moyen d'acquisition ou de stockage d'image) reliée à une carte graphique et fournissant à l'appareil des données à adapter et à transmettre.  According to the embodiment chosen and shown in FIG. 5, an apparatus embodying the invention is for example a microcomputer 500 or a workstation connected to different peripherals, for example a digital camera 501 (or a scanner, or any means of acquisition or image storage) connected to a graphics card and providing the device with data to be adapted and transmitted.

L'appareil 500 comporte un bus de communication 502 auquel sont reliés : - une unité centrale de traitement 503 (microprocesseur), qui exerce la fonction de l'unité de commande 19 de la figure 1, - une mémoire morte 504, pouvant comporter le programme"Progr", - une mémoire vive 506, comportant des registres 507 adaptés à enregistrer des variables créées et modifiées au cours de l'exécution du programme précité et notamment les variables r, fr, BR, BRo et PSNR mentionnées en référence aux figures précédentes,  The device 500 comprises a communication bus 502 to which are connected: a central processing unit 503 (microprocessor), which performs the function of the control unit 19 of FIG. 1, a read-only memory 504, which may comprise the program "Progr", - a RAM 506, having registers 507 adapted to record variables created and modified during the execution of the aforementioned program and in particular the variables r, fr, BR, BRo and PSNR mentioned with reference to the figures preceding,

<Desc/Clms Page number 47><Desc / Clms Page number 47>

- un écran 508 permettant de visualiser les données à traiter et/ou de servir d'interface graphique avec l'utilisateur qui pourra interagir avec le programme selon l'invention, à l'aide d'un clavier 510 ou de tout autre moyen tel qu'un dispositif de pointage non représenté, comme par exemple une souris ou un crayon optique, - un disque dur 512 pouvant comporter le programme"Progr" précité, - un lecteur de disquette 514 adapté à recevoir une disquette 516 et à y lire ou à y écrire des données traitées ou à traiter selon l'invention, - une interface de communication 518 reliée à un réseau de communication 520, par exemple un réseau Internet, ou Ethernet, ou IEEE1394 ou de type sans fil conforme à la norme 802.1, l'interface étant apte à transmettre et à recevoir des données.  a screen 508 making it possible to display the data to be processed and / or to serve as a graphical interface with the user who can interact with the program according to the invention, using a keyboard 510 or any other means such as that a pointing device not shown, such as for example a mouse or an optical pencil, a hard disk 512 which may comprise the "Progr" program mentioned above, a floppy disk drive 514 adapted to receive a floppy disk 516 and to read from it or to write data processed or to be processed according to the invention, - a communication interface 518 connected to a communication network 520, for example an Internet network, or Ethernet, or IEEE1394 or 802.1 wireless type, the interface being able to transmit and receive data.

Dans le cas de données audio, l'appareil comprend en outre une carte d'entrée/sortie reliée à un microphone qui sont tous deux non représentés.  In the case of audio data, the apparatus further comprises an input / output card connected to a microphone which are both unrepresented.

Le bus de communication permet la communication et l'interopérabilité entre les différents éléments inclus dans le micro-ordinateur 500 ou reliés à lui. La représentation du bus n'est pas limitative et, notamment, l'unité centrale est susceptible de communiquer des instructions à tout élément du micro-ordinateur 500 directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 500.  The communication bus allows communication and interoperability between the various elements included in the microcomputer 500 or connected to it. The representation of the bus is not limiting and, in particular, the central unit is able to communicate instructions to any element of the microcomputer 500 directly or through another element of the microcomputer 500.

Le code exécutable du programme noté"Progr"permettant à l'appareil programmable de mettre en oeuvre les procédés de récupération du contexte (figure 2), de codage/décodage (figures 3a et 3b) et d'adaptation (figures 4a et 4b) des données selon l'invention, peut être stocké par exemple dans le disque dur 512 ou en mémoire morte 504 comme représenté sur la figure 5.  The program executable code denoted "Progr" allowing the programmable apparatus to implement the context recovery (FIG. 2), coding / decoding (FIGS. 3a and 3b) and adaptation (FIGS. 4a and 4b) recovery methods. data according to the invention can be stored for example in the hard disk 512 or in the read only memory 504 as shown in FIG. 5.

Bien qu'un seul programme soit identifié, il est possible d'avoir plusieurs programmes ou sous programmes pour mettre en oeuvre l'invention.  Although only one program is identified, it is possible to have several programs or sub programs to implement the invention.

Selon une variante, la disquette 516, peut contenir des données compressées et stockées ainsi que le code exécutable du ou des programmes  According to one variant, the floppy disk 516 can contain compressed and stored data as well as the executable code of the program or programs

<Desc/Clms Page number 48><Desc / Clms Page number 48>

selon l'invention qui, une fois lu par l'appareil 500, sera stocké dans le disque dur 512.  according to the invention which, once read by the apparatus 500, will be stored in the hard disk 512.

En seconde variante, le code exécutable du ou des programmes pourra être reçu par l'intermédiaire du réseau de communication 520, via l'interface 518, pour être stocké de façon identique à celle décrite précédemment.  In the second variant, the executable code of the program or programs may be received via the communication network 520, via the interface 518, to be stored identically to that described above.

Les disquettes peuvent être remplacées par tout support d'information tel que, par exemple, un disque compact (CD-ROM) ou une carte mémoire. De manière générale, un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non à l'appareil, éventuellement amovible, est adapté à mémoriser un programme dont l'exécution permet la mise en oeuvre du procédé selon l'invention.  Floppies can be replaced by any information medium such as, for example, a compact disc (CD-ROM) or a memory card. In general, an information storage means, readable by a computer or by a microprocessor, integrated or not, possibly removable, is adapted to store a program whose execution allows the implementation of the method according to the invention.

De manière plus générale, le programme pourra être chargé dans un des moyens de stockage de l'appareil 500 avant d'être exécuté.  More generally, the program can be loaded into one of the storage means of the device 500 before being executed.

L'unité centrale 503 va commander et diriger l'exécution des instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées dans le disque dur 512 ou la mémoire morte 504 ou bien dans les autres éléments de stockage précités. Lors de la mise sous tension, le ou les programmes qui sont stockés dans une mémoire non volatile, par exemple le disque dur 512 ou la mémoire ROM 504, sont transférés dans la mémoire vive RAM 506 qui contiendra alors le code exécutable du ou des programmes selon l'invention, ainsi que des registres pour mémoriser les variables nécessaires à la mise en oeuvre de l'invention.  The central unit 503 will control and direct the execution of the instructions or portions of software code of the program or programs according to the invention, which instructions are stored in the hard disk 512 or the read only memory 504 or else in the other storage elements. supra. When powering up, the program or programs that are stored in a non-volatile memory, for example the hard disk 512 or the ROM 504, are transferred into the RAM RAM 506 which will then contain the executable code of the program or programs. according to the invention, as well as registers for storing the variables necessary for the implementation of the invention.

Il convient de noter que l'appareil de traitement de données comportant un dispositif selon l'invention peut également être un appareil programmé.  It should be noted that the data processing apparatus comprising a device according to the invention may also be a programmed apparatus.

Cet appareil contient alors le code du ou des programmes informatiques par exemple figé dans un circuit intégré à application spécifique (ASIC).  This device then contains the code of the computer program or programs for example frozen in a specific application integrated circuit (ASIC).

On notera que l'appareil de la figure 5 qui contient le programme "Progr"précédemment mentionné peut être, dans le cadre d'une architecture de communication du type client-serveur, le dispositif 4 de la figure 1. It will be noted that the apparatus of FIG. 5 which contains the program "Progr" previously mentioned can be, in the context of a communication architecture of the client-server type, the device 4 of FIG.

Claims (38)

REVENDICATIONS 1. Procédé de détermination d'au moins un paramètre de codage de données numériques multimédia organisées en unités élémentaires de données destinées à être codées selon au moins un mode de codage, caractérisé en ce que ledit procédé comporte les étapes suivantes : - détermination d'une capacité mémoire élémentaire nécessaire au décodage de chaque unité élémentaire de données codée selon un mode de codage différent, - détermination d'une capacité mémoire totale nécessaire au décodage d'un nombre donné d'unités élémentaires de données codées en fonction, d'une part, d'au moins une capacité mémoire élémentaire déterminée pour le décodage d'une unité élémentaire de données codée selon un mode de codage et, d'autre part, du nombre d'unités élémentaires de données codées selon chacun des modes de codage, - décision quant à la détermination d'au moins un paramètre de codage des données en fonction de la capacité mémoire totale précédemment déterminée et d'une capacité mémoire prédéterminée. A method for determining at least one coding parameter of multimedia digital data organized in elementary data units intended to be coded according to at least one coding mode, characterized in that said method comprises the following steps: determination of an elementary memory capacity necessary for the decoding of each elementary unit of data encoded according to a different encoding mode, - determining a total memory capacity necessary for the decoding of a given number of elementary units of data coded according to a on the one hand, at least one elementary memory capacity determined for the decoding of an elementary unit of data coded according to an encoding mode and, on the other hand, the number of elementary data units coded according to each of the coding modes, - decision as to the determination of at least one coding parameter of the data according to the memory capacity tot ale previously determined and a predetermined memory capacity. 2. Procédé selon la revendication 1, caractérisé en ce que, plusieurs modes de codage étant utilisés pour le codage du nombre donné d'unités élémentaires de données, l'étape de détermination de la capacité mémoire totale est plus particulièrement effectuée en fonction, d'une part, de la capacité mémoire élémentaire déterminée pour le décodage de chaque unité élémentaire de données codée selon un mode de codage différent et, d'autre part, du nombre d'unités élémentaires de données codées selon chacun des modes de codage.  2. Method according to claim 1, characterized in that, several coding modes being used for the coding of the given number of elementary data units, the step of determining the total memory capacity is more particularly carried out as a function of on the one hand, the elementary memory capacity determined for the decoding of each elementary data unit coded according to a different coding mode and, on the other hand, the number of elementary data units coded according to each of the coding modes. 3. Procédé selon la revendication 1, caractérisé en ce que, plusieurs modes de codage étant utilisés pour le codage du nombre donné d'unités élémentaires de données, ledit procédé comporte une étape supplémentaire de sélection de la capacité mémoire élémentaire la plus élevée parmi les différentes capacités mémoires élémentaires déterminées pour chacun des modes de codage.  3. Method according to claim 1, characterized in that, several coding modes being used for the coding of the given number of elementary data units, said method comprises an additional step of selecting the highest elementary memory capacity among the different basic memory capacities determined for each of the coding modes. 4. Procédé selon la revendication 3, caractérisé en ce que, l'étape de détermination de la capacité mémoire totale est plus particulièrement effectuée en  4. Method according to claim 3, characterized in that the step of determining the total memory capacity is more particularly carried out in <Desc/Clms Page number 50><Desc / Clms Page number 50> fonction, d'une part, de la capacité mémoire élémentaire la plus élevée précédemment sélectionnée et, d'autre part, du nombre donné d'unités élémentaires de données codées.  function, on the one hand, the highest elementary memory capacity previously selected and, on the other hand, the given number of elementary units of coded data. 5. Procédé selon l'une des revendications 1 à 4, caractérisé en ce que les étapes de détermination de la capacité mémoire élémentaire pour chaque mode de codage, de détermination de la capacité mémoire totale et de décision sont effectuées dans un premier appareil de communication relié à un second appareil de communication par un réseau de communication.  5. Method according to one of claims 1 to 4, characterized in that the steps of determining the elementary memory capacity for each mode of coding, determination of the total memory capacity and decision are performed in a first communication device connected to a second communication apparatus by a communication network. 6. Procédé selon la revendication 5, caractérisé en ce que, préalablement à l'étape de décision, le procédé comporte une étape de comparaison entre la capacité mémoire totale déterminée pour le décodage du nombre donné d'unités élémentaires de données codées et la capacité mémoire disponible dans le second appareil de communication pour le décodage de ces données.  6. Method according to claim 5, characterized in that, prior to the decision step, the method comprises a step of comparing the total memory capacity determined for decoding the given number of elementary units of coded data and the capacity. memory available in the second communication apparatus for decoding this data. 7. Procédé selon la revendication 6, caractérisé en ce que, préalablement à l'étape de comparaison, le procédé comporte une étape d'obtention par le premier appareil de communication de la capacité mémoire disponible dans le second appareil de communication.  7. Method according to claim 6, characterized in that, prior to the comparison step, the method comprises a step of obtaining by the first communication device the available memory capacity in the second communication device. 8. Procédé selon l'une des revendications 1 à 7, caractérisé en ce qu'il comporte en outre les étapes suivantes : - détermination du nombre élémentaire d'opérations à effectuer pour décoder chaque unité élémentaire de données codée selon un mode de codage différent, - détermination du nombre total d'opérations à effectuer pendant un intervalle de temps prédéterminé pour décoder une pluralité d'unités élémentaires de données codées en fonction, d'une part, du nombre élémentaire précédemment déterminé et, d'autre part, du nombre d'unités élémentaires codées selon chacun des modes de codage.  8. Method according to one of claims 1 to 7, characterized in that it further comprises the following steps: - determination of the basic number of operations to be performed to decode each elementary unit of data encoded according to a different coding mode determining the total number of operations to be performed during a predetermined time interval for decoding a plurality of elementary data units coded as a function, on the one hand, of the previously determined elementary number and, on the other hand, of the number of elementary units coded according to each of the coding modes. 9. Procédé selon la revendication 8, caractérisé en ce que la décision quant à la détermination dudit au moins un paramètre de codage est également prise en fonction du nombre total d'opérations précédemment déterminé et d'un nombre total d'opérations prédéterminé.  9. Method according to claim 8, characterized in that the decision as to the determination of said at least one coding parameter is also taken according to the total number of operations previously determined and a total number of predetermined operations. <Desc/Clms Page number 51> <Desc / Clms Page number 51> 10. Procédé selon les revendications 5 et 9, caractérisé en ce que les étapes de détermination du nombre élémentaire d'opérations, de détermination du nombre total d'opérations pendant un intervalle de temps prédéterminé et de décision sont effectuées dans le premier appareil de communication.  The method according to claims 5 and 9, characterized in that the steps of determining the basic number of operations, determining the total number of operations during a predetermined time interval and decision are performed in the first communication apparatus. . 11. Procédé selon la revendication 10, caractérisé en ce que, préalablement à l'étape de décision, le procédé comporte une étape de comparaison entre le nombre total d'opérations déterminé pendant l'intervalle de temps et le nombre total d'opérations qui pourraient être effectuées, pendant ce même intervalle de temps, dans le second appareil de communication.  11. The method of claim 10, characterized in that, prior to the decision step, the method comprises a step of comparing the total number of operations determined during the time interval and the total number of operations that could be carried out during the same time interval in the second communication apparatus. 12. Procédé selon la revendication 11, caractérisé en ce que, préalablement à l'étape de comparaison, le procédé comporte une étape d'obtention par le premier appareil de communication du nombre total d'opérations pouvant être effectuées par le second appareil de communication.  12. Method according to claim 11, characterized in that, prior to the comparison step, the method comprises a step of obtaining by the first communication device the total number of operations that can be performed by the second communication device. . 13. Procédé selon l'une des revendications 5 à 7, caractérisé en ce que la décision quant à la détermination dudit au moins un paramètre de codage est également prise en fonction de caractéristiques du réseau de communication.  13. Method according to one of claims 5 to 7, characterized in that the decision as to the determination of said at least one coding parameter is also taken according to characteristics of the communication network. 14. Procédé selon l'une des revendications 1 à 13, caractérisé en ce qu'il comporte une étape d'estimation de la qualité d'au moins une unité élémentaire de données en comparant ladite au moins une unité élémentaire de données codée avec le paramètre de codage déterminé et ladite au moins une unité élémentaire de données non codée.  14. Method according to one of claims 1 to 13, characterized in that it comprises a step of estimating the quality of at least one elementary unit of data by comparing said at least one elementary unit of data coded with the determined coding parameter and said at least one uncoded unit of data. 15. Procédé selon la revendication 14, caractérisé en ce que, lorsque plusieurs paramètres de codage ont été déterminés, le procédé comporte les étapes suivantes : - estimation de la qualité d'au moins une unité élémentaire de données pour chaque combinaison de paramètres de codage déterminée, - sélection de la meilleure qualité parmi les différentes qualités estimées pour les différents paramètres de codage.  15. Method according to claim 14, characterized in that, when several coding parameters have been determined, the method comprises the following steps: estimation of the quality of at least one elementary unit of data for each combination of coding parameters determined, - selection of the best quality among the various qualities estimated for the different coding parameters. 16. Procédé selon la revendication 14 ou 15, caractérisé en ce qu'il comporte les étapes suivantes : - codage d'au moins une unité élémentaire de données avec le paramètre de codage déterminé,  16. The method of claim 14 or 15, characterized in that it comprises the following steps: coding of at least one elementary unit of data with the determined coding parameter, <Desc/Clms Page number 52><Desc / Clms Page number 52> - décodage de ladite au moins une unité élémentaire de données codée, - estimation de la qualité de ladite au moins une unité élémentaire de données en comparant cette au moins une unité élémentaire de données non codée avec celle précédemment décodée.  decoding said at least one coded elementary data unit; estimating the quality of said at least one elementary data unit by comparing this at least one uncoded elementary data unit with that previously decoded unit. 17. Procédé selon l'une des revendications 1 à 16, caractérisé en ce que les données constituent une vidéo et le nombre donné d'unités élémentaires de données correspond à une image de la vidéo.  17. Method according to one of claims 1 to 16, characterized in that the data constitutes a video and the given number of elementary data units corresponds to an image of the video. 18. Procédé selon la revendication 17, caractérisé en ce que l'unité élémentaire de données est un macro-bloc de données.  18. The method as claimed in claim 17, characterized in that the elementary data unit is a macro-block of data. 19. Dispositif de détermination d'au moins un paramètre de codage de données numériques multimédia organisées en unités élémentaires de données destinées à être codées selon au moins un mode de codage, caractérisé en ce que ledit dispositif comporte : - des moyens de détermination d'une capacité mémoire élémentaire nécessaire au décodage de chaque unité élémentaire de données codée selon un mode de codage différent, - des moyens de détermination d'une capacité mémoire totale nécessaire au décodage d'un nombre donné d'unités élémentaires de données codées en fonction, d'une part, d'au moins une capacité mémoire élémentaire déterminée pour le décodage d'une unité élémentaire de données codée selon un mode de codage et, d'autre part, du nombre d'unités élémentaires de données codées selon chacun des modes de codage, - des moyens de décision quant à la détermination d'au moins un paramètre de codage des données en fonction de la capacité mémoire totale précédemment déterminée et d'une capacité mémoire prédéterminée.  19. A device for determining at least one coding parameter for multimedia digital data organized in elementary data units intended to be coded according to at least one coding mode, characterized in that said device comprises: means for determining an elementary memory capacity necessary for the decoding of each elementary unit of data coded according to a different encoding mode; means for determining a total memory capacity necessary for decoding a given number of elementary units of data coded according to, on the one hand, at least one elementary memory capacity determined for the decoding of an elementary unit of data coded according to an encoding mode and, on the other hand, the number of elementary data units coded according to each of the modes. coding means - decision means for determining at least one coding parameter of the data as a function of the total memory capacity previously determined and a predetermined memory capacity. 20. Dispositif selon la revendication 19, caractérisé en ce que, plusieurs modes de codage étant utilisés pour le codage du nombre donné d'unités élémentaires de données, ledit dispositif comporte des moyens de sélection de la capacité mémoire élémentaire la plus élevée parmi les différentes capacités mémoires élémentaires déterminées pour chacun des modes de codage.  20. Device according to claim 19, characterized in that, several coding modes being used for the coding of the given number of elementary data units, said device comprises means for selecting the highest elementary memory capacity among the different elementary memory capacities determined for each of the coding modes. 21. Dispositif selon la revendication 19 ou 20, caractérisé en ce que les moyens de détermination de la capacité mémoire élémentaire pour chaque mode  21. Device according to claim 19 or 20, characterized in that the means for determining the elementary memory capacity for each mode. <Desc/Clms Page number 53><Desc / Clms Page number 53> de codage, de détermination de la capacité mémoire totale et de décision sont intégrés dans un premier appareil de communication relié à un second appareil de communication par un réseau de communication.  encoding, determining the total memory capacity and decision are integrated in a first communication device connected to a second communication device by a communication network. 22. Dispositif selon la revendication 21, caractérisé en ce qu'il comporte des moyens de comparaison entre la capacité mémoire totale déterminée pour le décodage du nombre donné d'unités élémentaires de données codées et la capacité mémoire disponible dans le second appareil de communication pour le décodage de ces données.  22. Device according to claim 21, characterized in that it comprises means for comparing the total memory capacity determined for decoding the given number of coded data elementary units and the available memory capacity in the second communication device for decoding of these data. 23. Dispositif selon la revendication 22, caractérisé en qu'il comporte des moyens d'obtention par le premier appareil de communication de la capacité mémoire disponible dans le second appareil de communication.  23. Device according to claim 22, characterized in that it comprises means for obtaining by the first communication device the memory capacity available in the second communication device. 24. Dispositif selon l'une des revendications 19 à 23, caractérisé en ce qu'il comporte en outre : - des moyens de détermination du nombre élémentaire d'opérations à effectuer pour décoder chaque unité élémentaire de données codée selon un mode de codage différent, - des moyens de détermination du nombre total d'opérations à effectuer pendant un intervalle de temps prédéterminé pour décoder une pluralité d'unités élémentaires de données codées en fonction, d'une part, du nombre élémentaire précédemment déterminé et, d'autre part, du nombre d'unités élémentaires codées selon chacun des modes de codage.  24. Device according to one of claims 19 to 23, characterized in that it further comprises: - means for determining the basic number of operations to be performed to decode each elementary unit of data encoded according to a different coding mode means for determining the total number of operations to be performed during a predetermined time interval for decoding a plurality of elementary data units coded as a function, on the one hand, of the previously determined elementary number and, on the other hand, , the number of elementary units coded according to each of the coding modes. 25. Dispositif selon la revendication 24, caractérisé en ce que la décision quant à la détermination dudit au moins un paramètre de codage est également prise en fonction du nombre total d'opérations précédemment déterminé et d'un nombre total d'opérations prédéterminé.  25. Device according to claim 24, characterized in that the decision as to the determination of said at least one coding parameter is also taken according to the total number of operations previously determined and a total number of predetermined operations. 26. Dispositif selon les revendications 21 et 25, caractérisé en ce que les moyens de détermination du nombre élémentaire d'opérations, de détermination du nombre total d'opérations pendant un intervalle de temps prédéterminé et de décision sont intégrés dans le premier appareil de communication.  Device according to claims 21 and 25, characterized in that the means for determining the basic number of operations, determining the total number of operations during a predetermined time interval and decision are integrated in the first communication device. . 27. Dispositif selon la revendication 26, caractérisé en ce qu'il comporte des moyens de comparaison entre le nombre total d'opérations déterminé pendant  27. Device according to claim 26, characterized in that it comprises means for comparing the total number of operations determined during <Desc/Clms Page number 54><Desc / Clms Page number 54> l'intervalle de temps et le nombre total d'opérations qui pourraient être effectuées, pendant ce même intervalle de temps, dans le second appareil de communication.  the time interval and the total number of operations that could be performed during the same time interval in the second communication apparatus. 28. Dispositif selon la revendication 27, caractérisé en ce qu'il comporte des moyens d'obtention par le premier appareil de communication du nombre total d'opérations pouvant être effectuées par le second appareil de communication.  28. Device according to claim 27, characterized in that it comprises means for obtaining by the first communication device the total number of operations that can be performed by the second communication device. 29. Dispositif selon l'une des revendications 21 à 23, caractérisé en ce que la décision quant à la détermination dudit au moins un paramètre de codage est également prise en fonction de caractéristiques du réseau de communication.  29. Device according to one of claims 21 to 23, characterized in that the decision as to the determination of said at least one coding parameter is also taken according to characteristics of the communication network. 30. Dispositif selon l'une des revendications 19 à 29, caractérisé en ce qu'il comporte des moyens d'estimation de la qualité d'au moins une unité élémentaire de données qui comparent ladite au moins une unité élémentaire de données codée avec le paramètre de codage déterminé et ladite au moins une unité élémentaire de données non codée.  30. Device according to one of claims 19 to 29, characterized in that it comprises means for estimating the quality of at least one elementary unit of data which compares said at least one elementary unit of data coded with the determined coding parameter and said at least one uncoded unit of data. 31. Dispositif selon la revendication 30, caractérisé en ce que le dispositif comporte : - des moyens d'estimation de la qualité d'au moins une unité élémentaire de données pour chaque combinaison de paramètres de codage déterminée, - des moyens de sélection de la meilleure qualité parmi les différentes qualités estimées pour les différents paramètres de codage.  31. Device according to claim 30, characterized in that the device comprises: means for estimating the quality of at least one elementary unit of data for each combination of coding parameters determined, means for selecting the better quality among the different qualities estimated for the different coding parameters. 32. Dispositif selon la revendication 30 ou 31, caractérisé en ce qu'il comporte : - des moyens de codage d'au moins une unité élémentaire de données avec le paramètre de codage déterminé, - des moyens de décodage de ladite au moins une unité élémentaire de données codée, - des moyens d'estimation de la qualité de ladite au moins une unité élémentaire de données qui comparent cette au moins une unité élémentaire de données non codée avec celle précédemment décodée.  32. Device according to claim 30 or 31, characterized in that it comprises: coding means of at least one elementary data unit with the determined coding parameter; means for decoding said at least one unit; coded elementary data element; means for estimating the quality of said at least one elementary unit of data which compares this at least one elementary unit of uncoded data with that previously decoded. 33. Dispositif selon l'une des revendications 19 à 32, caractérisé en ce que les données constituent une vidéo et le nombre donné d'unités élémentaires de données correspond à une image de la vidéo.  33. Device according to one of claims 19 to 32, characterized in that the data constitutes a video and the given number of elementary data units corresponds to an image of the video. <Desc/Clms Page number 55> <Desc / Clms Page number 55> 34. Dispositif selon la revendication 33, caractérisé en ce que l'unité élémentaire de données est un macro-bloc de données.  34. Device according to claim 33, characterized in that the elementary data unit is a macro-block of data. 35. Appareil de communication, caractérisé en ce qu'il comporte un dispositif de détermination d'au moins un paramètre de codage de données selon l'une des revendications 19 à 34.  35. Communication apparatus, characterized in that it comprises a device for determining at least one data coding parameter according to one of claims 19 to 34. 36. Moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé de détermination d'au moins un paramètre de codage des données selon l'une des revendications 1 à 18.  36. Computer-readable information storage medium or microprocessor comprising code instructions of a computer program for performing the steps of the method of determining at least one data encoding parameter according to the present invention. one of claims 1 to 18. 37. Moyen de stockage d'informations amovible, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé de détermination d'au moins un paramètre de codage de données selon l'une des revendications 1 à 18.  37. Removable, partially or completely readable information storage medium by a computer or a microprocessor comprising code instructions of a computer program for performing the steps of the method of determining at least one coding parameter data set according to one of claims 1 to 18. 38. Programme d'ordinateur chargeable dans un appareil programmable, caractérisé en ce qu'il comporte des séquences d'instructions ou des portions de code logiciel pour mettre en oeuvre les étapes du procédé de détermination d'au moins un paramètre de codage de données selon l'une des revendications 1 à 18, lorsque ce programme d'ordinateur est chargé et exécuté par l'appareil programmable. 38. Computer program loadable in a programmable device, characterized in that it comprises instruction sequences or portions of software code to implement the steps of the method for determining at least one data encoding parameter according to one of claims 1 to 18, when this computer program is loaded and executed by the programmable device.
FR0115093A 2001-11-21 2001-11-21 Multimedia data coding process for domestic networks selects parameters using quality assessment Withdrawn FR2832582A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
FR0115093A FR2832582A1 (en) 2001-11-21 2001-11-21 Multimedia data coding process for domestic networks selects parameters using quality assessment
US10/495,920 US7355530B2 (en) 2001-11-21 2002-11-21 Method and device for determining at least one multimedia data encoding parameter
AU2002353301A AU2002353301A1 (en) 2001-11-21 2002-11-21 Method and device for determining at least one multimedia data encoding parameter
PCT/IB2002/005281 WO2003045068A2 (en) 2001-11-21 2002-11-21 Method and device for determining at least one multimedia data encoding parameter
EP02788322A EP1446955A2 (en) 2001-11-21 2002-11-21 Method and device for determining at least one multimedia data encoding parameter
US11/933,847 US7439881B2 (en) 2001-11-21 2007-11-01 Method and device for determining at least one multimedia data encoding parameter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0115093A FR2832582A1 (en) 2001-11-21 2001-11-21 Multimedia data coding process for domestic networks selects parameters using quality assessment

Publications (1)

Publication Number Publication Date
FR2832582A1 true FR2832582A1 (en) 2003-05-23

Family

ID=8869655

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0115093A Withdrawn FR2832582A1 (en) 2001-11-21 2001-11-21 Multimedia data coding process for domestic networks selects parameters using quality assessment

Country Status (1)

Country Link
FR (1) FR2832582A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114430501A (en) * 2021-12-28 2022-05-03 上海网达软件股份有限公司 Content adaptive encoding method and system for file transcoding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6278735B1 (en) * 1998-03-19 2001-08-21 International Business Machines Corporation Real-time single pass variable bit rate control strategy and encoder

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6278735B1 (en) * 1998-03-19 2001-08-21 International Business Machines Corporation Real-time single pass variable bit rate control strategy and encoder

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MOHAN R ET AL: "Adapting multimedia Internet content for universal access", IEEE TRANSACTIONS ON MULTIMEDIA, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 1, no. 1, March 1999 (1999-03-01), pages 104 - 114, XP002159629, ISSN: 1520-9210 *
WEI ZHAO ET AL: "Efficient adaptive media scaling and streaming of layered multimedia in heterogeneous environment", MULTIMEDIA COMPUTING AND SYSTEMS, 1999. IEEE INTERNATIONAL CONFERENCE ON FLORENCE, ITALY 7-11 JUNE 1999, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 7 June 1999 (1999-06-07), pages 377 - 381, XP002180550, ISBN: 0-7695-0253-9 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114430501A (en) * 2021-12-28 2022-05-03 上海网达软件股份有限公司 Content adaptive encoding method and system for file transcoding

Similar Documents

Publication Publication Date Title
FR2837330A1 (en) Method and device for selecting a transcoding method from a set of transcoding methods used for multimedia digital data
FR2840495A1 (en) METHOD AND DEVICE FOR SELECTING A TRANSCODING METHOD AMONG A SET OF TRANSCODING METHODS
FR2894421A1 (en) METHOD AND DEVICE FOR DECODING A VIDEO STREAM CODE FOLLOWING A HIERARCHICAL CODING
US7439881B2 (en) Method and device for determining at least one multimedia data encoding parameter
FR2857198A1 (en) Digital data e.g. audio, stream distribution method, involves selecting code conversion method admissible for each client from set of predetermined code conversion methods based on calculated flow and classification of client
FR2831688A1 (en) Multimedia digital data request processing method for television, involves considering request being processed similar to earlier request, when two requests have only certain request descriptors in common
FR2902266A1 (en) METHOD AND DEVICE FOR DISTRIBUTING THE COMMUNICATION BANDWIDTH
EP2947888A1 (en) Adaptive method for downloading digital content for a plurality of screens
FR3040578A1 (en) IMAGE ENCODING AND DECODING METHOD, IMAGE ENCODING AND DECODING DEVICE AND CORRESPONDING COMPUTER PROGRAMS
FR2832582A1 (en) Multimedia data coding process for domestic networks selects parameters using quality assessment
EP3360328B1 (en) Multi-view coding and decoding
FR2832581A1 (en) Multimedia data coding process for domestic networks selects parameters using quality assessment
WO2014096638A1 (en) Method and device for transmitting a sequence of images based on an adaptive region coding
WO2017129880A1 (en) Method for encoding and decoding data, device for encoding and decoding data, and corresponding computer programs
FR2923970A1 (en) METHOD AND DEVICE FOR FORMING, TRANSFERING AND RECEIVING TRANSPORT PACKETS ENCAPSULATING DATA REPRESENTATIVE OF A SEQUENCE OF IMAGES
EP1900223A2 (en) Video coding method and device
US20170347138A1 (en) Efficient transcoding in a network transcoder
FR2851109A1 (en) Model parameters determination method for estimating image sequence distortion, involves assigning current image sequence of model parameters with reference image sequence selected based on representation information
FR2846832A1 (en) Digital image coding distortion modeling procedure, involves applying estimation model of coding distortion weighted by exponential, to information representing energy measure of digital image
EP3542533B1 (en) Method and device for coding and decoding a multi-view sequence
EP2160837A1 (en) Selection of decoding functions distributed to the decoder
EP3854088A1 (en) Methods and devices for encoding and decoding a data stream representing at least one image
FR3041851A1 (en) ASSOCIATED FLOW ALLOCATION METHOD, DEVICE, ENCODER AND COMPUTER PROGRAM
EP3815366A1 (en) Methods and devices for coding and decoding a data stream representing at least one image
FR3064145A1 (en) METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS

Legal Events

Date Code Title Description
ST Notification of lapse