WO2007083063A1 - Table de mixage vidéo - Google Patents

Table de mixage vidéo Download PDF

Info

Publication number
WO2007083063A1
WO2007083063A1 PCT/FR2007/050661 FR2007050661W WO2007083063A1 WO 2007083063 A1 WO2007083063 A1 WO 2007083063A1 FR 2007050661 W FR2007050661 W FR 2007050661W WO 2007083063 A1 WO2007083063 A1 WO 2007083063A1
Authority
WO
WIPO (PCT)
Prior art keywords
video
data
logical network
processor
pixel
Prior art date
Application number
PCT/FR2007/050661
Other languages
English (en)
Inventor
Sebastien Vaillant
Jean-François JEANNARD
Vincent Julien
Original Assignee
Sebastien Vaillant
Jeannard Jean-Francois
Vincent Julien
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 Sebastien Vaillant, Jeannard Jean-Francois, Vincent Julien filed Critical Sebastien Vaillant
Publication of WO2007083063A1 publication Critical patent/WO2007083063A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing

Definitions

  • the present invention relates to video mixing devices and methods, including several uncompressed video streams.
  • the invention allows the mixing and manipulation of video streams in real time. These video streams are organized according to a hierarchical structure and manipulated in an original way by applying effects and embedding them into each other.
  • Video mixing devices have been known since the end of the 1980s, implementing analog processing on analog signals (in particular US 5,027,213 and GB 2,227,903). These solutions are now somewhat archaic in light of the promise of digital processing: modularity, multiple processing and easy configuration of the same hardware.
  • Patent EP 0 573 293 also discloses a video mixing apparatus from a recorded signal and a graphic signal generated by a computer processing unit. This solution is not suitable for current uses in which it is desirable to be able to acquire and combine, in real time, many video streams.
  • a problem of the prior art therefore concerns the real-time processing of several uncompressed video streams (that is to say a pixel by pixel processing) while the computing power remains limited. This highlights the need to optimize the management of specific and costly processing of pixels in video streams and more general processing of parameters or audio signals.
  • the invention aims to solve this problem by proposing an optimized device as to the processing unit and calculation.
  • the optimization of the processing and calculation unit is based on the use of two different processing entities: one dedicated to parameter calculations (from external signals and / or information coming from the user) and the other dedicated to the direct calculations of the pixels of the output video from those of the input videos.
  • An application of the present invention is aimed in particular at video mixing platforms for real-time (live) performances, mixing audio and several videos.
  • the present invention firstly relates to a video mixing device comprising at least a plurality of video signal acquisition modules composed of pixels, a logic network type of processing unit, for example an FPGA ( Field-Programmable Gate Array - Field Programmable Gate Array - a processor, for example a DSP (Digital Signal Processor - digital signal processor) and a video output module, wherein:
  • a logic network type of processing unit for example an FPGA ( Field-Programmable Gate Array - Field Programmable Gate Array - a processor, for example a DSP (Digital Signal Processor - digital signal processor) and a video output module, wherein:
  • the processor is arranged to receive and interpret external mixing data and to transmit calculation parameters to said logical network, said calculation parameters being determined according to said external mixing data, and
  • the logical network is arranged to synchronously acquire digital data of said input pixels from said acquisition modules and to perform calculation operations according to said calculation parameters on said acquired pixels, for generation and transmission to said module; video output of an output video signal.
  • Logic network is understood to mean a logic integrated circuit composed of numerous elementary logic cells performing numerical calculation functions.
  • These logical networks can be non-programmable, ASIC type (Application Specifies Integrated Circuit, specialized integrated circuit) or programmable. In the latter case, the elementary logic cells are freely assembled and can be reprogrammed after the manufacture of the network and during its use. These cells are connected by programming, in order to achieve the desired digital function (s).
  • An interest of these networks resides in the possibility of configuring them for specific tasks or calculations and in particular for pixel-level parallel processing of several input video streams, these processing being generally expensive in terms of the number of data to be processed.
  • the FPGA field-programmable grating array
  • the FPGA is programmed in logical blocks used during the calculations, these logical blocks requiring calculation parameters: for example, the degree of transparency of a video layer (alpha component seen below), the speed of transition, the desired effects , the effect parameters (strain intensity, %), ...
  • processor is meant an electronic component optimized for calculations. It is usually a processor associated with an executable firmware in which calculation rules have been established. In the present invention, these calculation rules mainly concern the conversion of external signals generated by a user by means of a human-machine interface (HMI - selection buttons, potentiometers) into calculation parameters for the FPGA (mixing parameters : choice of a visual effect rather than another, intensity and duration of an effect, ).
  • the DSP is the "intelligence" of the system because it interprets data, whereas the FPGA only performs rough calculations.
  • processors for data processing such as microprocessors, ARM processors (Advanced RISC Machines), DSP (Digital Signal Processor) processors, ...
  • logical network For the description below, the terms “logical network”, “programmable logic network” and FPGA are to be understood as synonyms. Likewise, the terms “processor (s)” and “DSP” are used interchangeably to denote the same processing component of the video mixing platform.
  • the DSP performs all the calculations relating to the parameters of effects and video processing (DSP control function) and, on the other hand, the FPGA realizes these "raw" processing of the video - pixel by pixel - according, in particular of the parameters which it transmits the DSP (video processing function of the FPGA).
  • FPGA and DSP communicate via an asynchronous or synchronous bus, and parallel or serial.
  • the hardware components relating to the DSP and FPGA functions can be combined on the same integrated circuit.
  • a portion of the logical network is prewired hard to perform the DSP functions.
  • said acquisition modules each comprise a first-in, first-out FIFO memory for storing the digital data of said acquired pixels and said logical network is able to read simultaneously, in said memories, the corresponding digital data. at the same pixel in said input video signals.
  • correlates means two pixels having the same position (same coordinates) in two different images, coming here from two different input video signals. If the images do not have the same dimension, a rule of proportionality is applied to deduce the pixel having approximately the same relative position in the image (in view of the general dimensions). Eventually, more elaborate laws involving resampling of the image may also be used. Thanks to the presence of memories in the acquisition modules, the FPGA has at its disposal a large number of pixels composing each of the images acquired. As a result, it can synchronize the reading of the data of the first pixel of each of the images so that the reading of the following pixels according to the first-in, first-out principle is performed simply.
  • Another problem that the invention aims to solve relates to the optimization of the resources provided by the FPGA and in particular the management of the memory to optimize the read / write cycles of the video data and the number of inputs / outputs available by the FPGA.
  • the economic programmable logic networks are limited in number of connection pins. It therefore seems important to optimize the use of these and thus reduce the "wiring" internal and external to the FPGA (that is to say, especially the complexity of programming VHDL Very-high-speed integrated hardware circuit Description Language_ of the FPGA network) and connect other options (eg a M ⁇ D ⁇ _Musical Instrument Digital Interface) on the FPGA.
  • An important optimization concerns memories for storing pixel data for FPGA processing.
  • the device may furthermore comprise a plurality of random access memories (SRAM or SDRAM, for example) connected to said logical network by means of address and data buses, the number of address buses being less than to the number of input video signals, said random access memories being each dedicated to a single acquisition module for storing the digital data of pixels read by the logic network in said FIFO memories, said logical network being able to store the data corresponding pixel numbers, on at least two RAMs connected to the same address bus using one or more same memory address (s).
  • SRAM random access memories
  • SDRAM Secure Digital RAM
  • Each of the memories has its own data bus connected to the FPGA and possibly a control bus.
  • An address bus is common to several memories. Since the memory write is a time-consuming operation and it is desired to have synchronized input images, the use of the same memory address for storing the pixel data corresponding two images is envisaged. Thus, one mutualizes the writing in memory by generating one (or more) same memory address to several RAMs. Several memory addresses are used for the same pixel if the binary words of the memories are not large enough to store all the data of the components of a pixel.
  • Another solution is to associate a second FPGA u first to provide the sufficient number of pins and equivalent performance even if it does not appear economically satisfactory.
  • An optimization that can be complementary to that mentioned above consists in combining within the same binary memory word at least two pixel components. This is particularly interesting for a 4: 2: 2 video signal: the Y and Cb data of a first pixel and the Y 'and Cr data of the next pixel are stored in a memory word.
  • said RAMs are able to store binary words of length at least twice the length of the data of a pixel component, and the logic network is able to generate on said data bus a word comprising the digital data of at least two corresponding pixel components for storage in said random access memory.
  • An extension of this embodiment consists in using a same binary memory word to store all the data of several pixels, for example a 4-byte memory word for storing Y-Cr-Cb-Y 'of two consecutive pixels of a video 4: 2: 2.
  • an alternative embodiment consists in using a single memory for all the pixel data of the input videos.
  • the device comprises a single random access memory connected to said logical network via an address bus and a data bus, the memory being able to store binary words of length at least equal to the length of the data bits. data of the components of a pixel multiplied by the number of input signals, and the logical network being able to generate a word comprising the digital data of the corresponding pixels of all the input signals and to store this word in the random access memory .
  • this device further comprises an HMI human-machine interface connected to said DSP for the selection and transmission of said external mixing data by a user.
  • this hardware HMI can be connected to the FPGA, which performs a processing / decoding of the generated signal to transmit data usable by the DSP.
  • the signals coming from this HMI are interpreted by the DSP and then translated into parameters, which are transmitted to the FPGA for parameterizing the processing logic blocks.
  • the device further comprises a preview video output module connected to a switching module, said logical network being programmed to supply to said switching module pixel data calculated at different points of said operations, and said DSP being able to control said switching module according to the interactions of the user with said HMI.
  • the user connects a monitor to the video output module to view video signals created at different points in the FPGA processing chain.
  • the latter is programmed to continuously provide intermediate calculation data (in different locations that have been previously determined during programming or network cabling) to a multiplexer or switch.
  • the user interacts with the switch via the HMI to select and switch to a preview output (digital-to-digital converter) the digital data from a desired location in the FPGA processing chain.
  • the FPGA can be programmed to perform additional processing on the data taken at different points in the computation chain to provide enhanced preview functionality: for example, providing a "quadra" to simultaneously display the four video channels entrance.
  • said HMI interface comprises a two-dimensional keypad with NxM keys where one dimension represents the number of video input signals and the other dimension the number of layers, and in which only one key per line and per column is active.
  • said DSP being capable of setting the logical network for the superposition of the input signals in the output signal according to said active keys of said keyboard.
  • a 4x4 keyboard is provided whose lines represent the stacking layers of the videos and the columns represent the videos.
  • the user quickly identifies which video is the highest in the stack by determining (with the indicator light) the column corresponding to the illuminated key of the first line.
  • the user pressing an idle key causes active keys to be modified to ensure that only one video is assigned to each layer.
  • the modification may consist of the layer reversal between the video assigned to a new layer by pressing the key and the video that was assigned to that layer. But this modification can be more complex, for example by going up or down one layer the videos that were assigned to the intermediate layers between the new layer selected and the old layer deselected.
  • the reversal of two signals on two layers is performed when the user selects the two active keys relating to these two signals and layers.
  • Electronic musical instruments may be associated with the mixer as human-machine interfaces or to broaden the interactions of the mixer.
  • There are many devices producing MIDI signals including digital musical instruments (guitar, synthesizer, ).
  • An audio signal can be used as a source of settings for FPGA video processing.
  • the audio stream is analyzed in real time; a certain amount of information is extracted from it (the musical tempo, the frequency content - proportion of bass and treble -, the level - "volume” sound -, the pitch of the notes played, the "attacks" of the notes,. ..) - This information is then used to change video channel settings or to synchronize the audio signal and video processing (triggering effects on appearance of a given characteristic).
  • MIDI information interpreted by the
  • the DSP can also generate a MIDI stream from its own calculations and / or calculations (intermediate or not) of the FPGA to modify the behavior or control external equipment such as electronic musical instruments.
  • the device comprises an interface M IDI connected to said DSP, either directly or via the FPGA, said interface M IDI being able:
  • the video mix is correlated to an audio signal, for example from a Disc Jokey.
  • the DSP is by nature suitable for audio processing and for this purpose an acquisition module of an audio source is directly connected to the DSP.
  • This audio source serves as a source of parameters for the FPGA (the DSP then performs calculations on the audio stream to deduce or to take the parameters adequate).
  • This audio stream can be the ambient sound flow of the room in which the output image of the video mixer is projected: the visible video effects are thus favorably correlated with the instantaneous sound environment (a fast sound bit can flash the image at the same frequency).
  • the device comprises an audio interface connected to said DSP, the latter being able to process the audio signal to determine calculation parameters of the logical network according to said audio signal.
  • the memory card connected to the DSP can have two main functions: - the backup of the parameters of the DSP and / or the FPGA at a given instant (sort of instantaneous photo of the state of the platform comparable to a state vector), so to be able later to quickly recover a known configuration or even optimized for a known input video channel; - the storage on the map of an image in JPEG format _ Joint
  • Photograph Experts Group_ (or other) for example
  • the image is decompressed by the DSP then transmitted to the FPGA by the parallel bus and stored in a RAMs working FPGA.
  • the image is then substituted for an input video track.
  • the subject of the invention is also a method comprising: a step of reading synchronized by said logical network of the corresponding digital pixel data in the acquisition modules;
  • the method further comprises, and further to said synchronized reading step, a step of writing digital data of pixels in RAMs connected to said logical network by address and data buses. number of address buses being less than the number of input video signals and the writing of the corresponding pixel data in two RAMs belonging to the same address bus being performed by the use of the same memory address.
  • the method comprises, following the activation of an inactive key.
  • the method comprises, following the activation of an idle key of said keyboard by a user, a step of shifting a layer of the videos that were assigned to the intermediate layers between the new layer selected by said activation and the old layer; deselected and a step of determining by said DSP said active keys to set said logical network.
  • This offset can consist of either going up one layer or descending a layer all the intermediate videos between the old layer (deselected layer) assigned to the video whose layer number is to be changed and this new layer selected.
  • FIGS. 1 and 1 1 schematically illustrate the functional structure of the system according to the present invention
  • Figure 2 is a detailed representation of the system of Figure 1
  • FIG. 3 represents an exemplary read / write timing diagram of the SRAM memories of the system of FIGS. 1 and 2
  • FIG. 4 illustrates in detail a memory architecture according to the present invention
  • Figure 5 illustrates the principle of layering layers
  • Figures 6 to 8 illustrate a source allocation interface to the different layers of Figure 5
  • Figures 9 and 10 illustrate two modes of operation of the interfaces of Figures 6 to 8.
  • the system consists of an FPGA programmable processing unit 10 to which are connected:
  • video memories 16 of the SRAM type (static random access memory);
  • a digital processing unit DSP 18 via a parallel bus 20;
  • a video output module 22 of digital-analog converter type which is connected to a display device;
  • An M IDI interface 24 connected to one or more digital musical instruments capable of transmitting or receiving an M IDI signal intended for the FPGA;
  • the core of the system is based on a mixed architecture associating a programmable FPGA 10 in VHDL to a digital processing unit DSP 18.
  • the latter configure the units or logical blocks of the FPGA to perform calculations on video source data in accordance with the programming of the FPGA performed by the user.
  • the programming of the FPGA notably makes it possible to relieve the DSP by reducing the number of calculations that the latter has to carry out.
  • the system allows from video sources and parameters entered by the user on the I HM and / or calculated from received data streams (audio, MIDI, video stream, ...) to produce video data ""mixed” displayed on the display device.
  • received data streams audio, MIDI, video stream, .
  • Many effects can be implemented and combined during calculations by the FPGA, some examples of which are non-limiting:
  • the video processing is performed in real time by the system, which imposes a frequency of approximately 27 MHz for the production of an output pixel. It may be envisaged to introduce a slight time difference between the instant of acquisition of an image of the video streams and the production of a corresponding output image.
  • the video sources arrive at the input of the acquisition cards 12.
  • These acquisition modules 12 supply the output system with the constituent information of the pixels (generally the luminance Y and chrominance components Cb and Cr), these data being produced pixel after pixel, image after image.
  • the processing at the heart of the system is performed pixel by pixel in the Red-Green-Blue RGB space, that is to say that the pixels of the output image are successively calculated one after the other at from the corresponding pixels of the input images or equivalent pixels.
  • corresponding means that the pixel having the position (line 30, column 1 12) is calculated from the pixels having the same position in the corresponding image of the input video streams.
  • effects for example image rollover
  • on the images may require the use of equivalent pixels (line 30 starting from the end of the image, column 1 12, for example).
  • the alpha component is sometimes embedded in the video signal. In the opposite case, it is synthesized (for example by a mask generator generating pre-defined forms). It is also planned to use a component of another video signal or an image ... or to extract it from the image based on certain characteristics of it (color, brightness, etc.). Each pixel is represented by a quadruplet: R, V, B and ⁇ .
  • the four video acquisition modules 12 are interchangeable and of several types: analog-digital 12 'or totally digital
  • Each module 12 comprises a processing module and a FIFO memory FO (first in, first out).
  • analog can receive 4 video streams and 2 audio streams, from which they take only one video stream.
  • the digital modules take a single audio-video stream from all the streams that compose the multiplexed stream arriving at the module input.
  • Analog video signals are converted to digital for processing and mixing. The different video streams are resynchronized, which requires temporarily storing the acquired images.
  • the analog signals are sampled in the YCrCb4: 2: 2 format, which compresses the data by a factor of 3/2.
  • the acquisition processing module then successively samples the data of each pixel composing the images of the video source and stores them in the FIFO memory.
  • the FIFO memories of all the modules 12 are read in a synchronized manner by the FPGA 10 at the reading frequency of 27 MHz for PAL type video sources, this frequency being provided by an oscillator incorporated in the FPGA.
  • the FPGA identifies the beginning of each image in the memories and proceeds to read the successive pixel data in the different FO FO memories of the acquisition modules.
  • the oscillator also makes it possible to synchronize the other electronic elements of the DSP system, coder-decoder, ...
  • the RAMs 16 are grouped in pairs on the same address bus 28 connected to the FPGA and each of the memories has its own data bus 28 'and a control bus 28 ". is coded on 19 bits, the 16-bit data bus and the 1-bit control bus This configuration makes it possible to require only 106 (19 * 2 + 16 * 4 + 4) pins on the FPGA while a configuration more simplistic (a independent memory for each input video signal) requires 144 pins, or 38 more pins.
  • the memories are 8Mbits to easily store all the data of a video image. For a PAL 720x576 image sampled in 4: 2: 2, there are 829 440 components to be memorized, ie 6.6 Mbits.
  • Each random access memory is dedicated to a single source, for example the SRAM memory ANAL1 to the first analog input video source, etc.
  • Yi, Cri and Cbi represent the luminance, red chrominance and blue chrominance of the pixel i.
  • the pixels desired by the address generator are not necessarily two consecutive pixels, depending on the desired mixing effects (for example a mirror effect may need to read the pixels from the end). For this, reading a pixel requires at least two memory reads.
  • the FPGA generates the unique address (4 cycles) for writing the read pixel data of the acquisition modules and the four read addresses (4x2 cycles) for the processing of the output pixel to be produced during this cycle (2 addresses for each of the memories).
  • the FPGA When reading the pixel data in the FIFO memories 12, the FPGA generates an address for writing the data in the memories 16.
  • the address generator 30 in writing is unique for all the memories 16 and is incremented linearly to guarantee recording pixels consecutive to consecutive memory addresses.
  • the generated memory address makes it possible to store in the memories at the same time the data transmitted on data buses 28 'specific to each memory.
  • each video source has a generator of address 30 in clean reading.
  • the FPGA successively retrieves the data Y n Cr n and Y n + iCb n for the pixel n of the first video (memory 1) and the data Y u Cr u and Y u + iCb u for the pixel u of the second video (memory 2)
  • FIG. 3 represents the chronogram of only one of the two buses 28. FPGA treatment
  • deformation blocks upstream of the raw video processing of the video streams receive or sample the pixel data of the RAMs 16 to provide them following the processing chain; • blocks of preprocessing and FX effects receiving the block signals;
  • the processing carried out by the FPGA for each pixel relates to the three components Y, Cr and Cb read in memory.
  • Image distortions are made possible thanks to a block of random access to pixels placed upstream of the treatment chain. To re-synchronize the video streams, it is necessary to store them temporarily in memories, just after their sampling in the modules 12. Image distortions are performed when reading these memories: rather than reading pixels in sequentially (which gives an undeformed image), any pixel in the image is accessed using the own address generators 30.
  • the deformation block is therefore a specific read address generator in memory.
  • each video stream can be attenuated by the user via a dedicated control via the interface GUI 26.
  • This gain is implemented by a multiplication with the alpha component.
  • the gain is zero, the alpha component is zero too, and the pixels of the video stream are transparent.
  • this gain is unitary (no attenuation), the alpha component is unchanged.
  • the alpha component applied to a track is extracted from a video signal using the color or brightness information of the video stream.
  • the video signal used for the extraction can be that of any track (and not necessarily that to which one apply the alpha component).
  • Different extraction methods exist including:
  • Chroma-key extraction exploiting the information of chroma
  • Luma-key extraction exploiting the information of luminosity.
  • the video processing chain can be controlled by a dedicated hardware user interface 26, composed of conventional controls (potentiometers, buttons, screen, etc.).
  • This control consists of a set of light buttons arranged in a square, as shown in Figure 6. It allows to direct a track to a given layer. The lighting of the buttons by a given color makes it possible to quickly identify how the tracks are organized in layers.
  • This control also makes it possible to manage the reorganization of the tracks when a track is moved towards a layer, since only one track can be assigned to a given layer: thus for each dimension only one key of the keyboard is active (in the sense of the assigning tracks to different layers).
  • two modes are proposed when one wishes to change a track of layer:
  • the first mode consists in shifting all the tracks assigned to the layers situated between the original and the destination layer. For example, starting from the previous configuration, if it is desired to direct the track 2 (directed towards the layer 2) towards the layer 4, the tracks associated with the layers 3 and 4 (here the tracks 3 and 4) will be shifted. This configuration change is obtained by pressing the button located at the intersection of the track that you want to move and the layer to which you want to associate it (here, the button at the intersection of track 2 and the layer 4). Thus, this mode is triggered by pressing a key on the keyboard that is not yet active.
  • the second mode is to swap two layers. For example, we can swap tracks 2 and 4
  • This mode is activated by holding down the button (track 2, layer 2) and pressing the button (track 4, layer 4) (the two "on” buttons of the tracks that you wish to switch). This mode is thus triggered by pressing two active keys simultaneously (or by keeping a first pressed and pressing the second).
  • This control can also be used to display various information about the track, taking advantage of different lighting colors, and possible blinking of the lighting. It can also be used in conjunction with other elements of the interface, for example by using double supports: now pressed a "function” button and by pressing one of the buttons of the two-dimensional keyboard associated with a track (that is to say one of the buttons of the column associated with this track), the "function” is applied at this track.
  • One variant would be to apply this function at different points of the processing chain depending on the button of the column used.
  • This control is operated as follows: • If a key is pressed while a "function" key is held down, this function will be applied to the track associated with the key pressed (the number the key in the column can then be parameter for this function, or allow to select one of the variants of this function). In this case, the assignment of the tracks to the individual buttons is not assigned. • If an inactive button is pressed while no "function” button is pressed, the routing of the tracks to the layers is changed. The tracks assigned to the layers between the original and destination layer of the newly modified track will be shifted (each of them is assigned to the layer just above the layer it occupies currently if the track that is modified by the user is assigned to a layer below that which it currently occupies).
  • the assignment of the tracks to the layers is then recalculated and the result of this calculation makes it possible, on the one hand, to control the multiplexer which routes the tracks to the layers (and thus to make the new assignment of the tracks effective) and, d on the other hand, to redefine the new active keys on the keyboard and to update the visual feedback (switching on the active keyboard keys, turning off the others). • If two active keys are pressed (simultaneously or one after the other if the first is held down), the two tracks are swapped: each one is then directed to the layer occupied by the other. In this case the assignment of the tracks to the layers is modified (by recalculating the new assignment of tracks and by controlling accordingly the multiplexer which realizes the routing), and the set of active keys is updated as well as the visual return.
  • the table is initialized for example with the values 1, 2, 3,..., N (that is to say the first track assigned to the first layer, the second track assigned to the second layer ).
  • the layers are mixed two by two, starting with the two lower layers.
  • the result of this merge is used as background for the track just above and combines with it.
  • the mixture of two layers takes into account the colors and the transparency of these layers (alpha component), and the result depends on the type of mixture used.
  • an additional video output is proposed: it allows to visualize any point of the chain of treatment.
  • the user can for example make the settings he wants for a track by viewing the result before it is transmitted to the main output.
  • the FPGA is programmed to connect various points in the chain of calculations (eg video entry points, effects calculation outputs, ...) to a switch controlled by the HMI. On a continuous basis, the data calculated by the FPGA is transmitted to the switch. The user through a select-pilot command the switch
  • the DSP 18 (possibly via the DSP to interpret the signal generated by the HMI and set the FPGA accordingly) to provide the digital-to-analog converter of the additional video output the signal it wishes to preview.
  • the DSP is used to generate the parameters to be applied to the FPGA. It consists of a processor for executing an application program stored in a SDRAM memory synchronous dynamic random access memory, synchronous dynamic random access memory or equivalent (Flash, ). This program realizes the acquisition of external data, the interpretation of these data and the production and transmission of parameters to the FPGA.
  • Some examples of external sources an audio signal received by the codec-decoder 32, the human-machine interface 26 connected directly to the DSP or via the FPGA if preliminary data processing is necessary, M IDI data coming from digital musical equipment received by a dedicated interface 24, data contained in memory cards via a card reader connected to the DSP, a computer connected to the mixing platform by a USB port for example to provide a virtual I HM,. ..
  • the video processing chain can be driven by M IDI messages, from digital music instruments. Supported messages and the parameters they control are configurable.
  • the M IDI signals are digital and directly processed by the DSP: a digital electric guitar is connected to the system via an M IDI connection and produces signals concerning, for example, the following information:
  • This value is therefore transmitted, via the bus 20, by the DSP to the FPGA as being the new value of the register ⁇ (layeri). It follows that calculations made after this registry assignment will take into account the new value determined. Thus, when the musician plays his instrument, the transparency value of the layer 1 varies, giving a video effect correlated to the loudness of the musical instrument.
  • the generation of a value by the FPGA at the end of a calculation operation can come to set up a digital musical instrument.
  • the DSP retrieves the value of the average brightness of an image and compares it to an indirection table:
  • parameters or calculation results of the DSP can also be the medium of data transmitted by MIDI signals.
  • the video processing chain can also be controlled by an audio stream.
  • An audio codec 32 encoder-decoder
  • the digitized audio stream is transmitted to the DSP and analyzed in real time, and a certain amount of information is extracted from it. This information is used to modify video channel parameters similarly to the MIDI signal. They are also used for synchronization purposes between the audio signal and the video processing (triggering effects on appearance of a given characteristic). A lot of information can be extracted, for example:
  • the exploitation of the audio signal is interesting since it allows to correlate the audio signal generated by a jokey puzzle with the video effects that a video mixer will produce.
  • the codec makes it possible to convert the digital audio signal into an analog output signal for broadcasting.
  • the memory card is used as a means of configuration backup. If the user of the mixing platform wants to save a configuration that he particularly likes, he triggers a backup step via the I HM. The DSP then proceeds, via the bus 20, to the recovery of all the parameters stored in the registers of the FPGA and / or of its own parameters, and to the recording of these in an appropriate configuration file on the memory card (or USB key). Traditional means of naming configurations and configuration selection to be restored (the DSP modifying the registers of the FPGA with the data in memory) are provided.
  • the memory card can also be used as a source of static video, that is to say an image. If the user wishes, the DSP transmits the data of the image to the FPGA. The FPGA then substitutes in the RAM 16 a video that it wishes to replace with the image. Such an image can be used to form a fixed background (layer 4) or to make a mask (layer 1).
  • USB connection is provided on the DSP to connect a computer.
  • odor diffusers are connected to the mixing platform, which diffusers are controlled (choice of an odor, intensity of diffusion, %) by parameters or results of calculations of the FPGA or DSP. It is thus possible to associate odors with video effects.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Studio Circuits (AREA)

Abstract

La présente invention concerne les dispositifs et procédés de mixage vidéo. L'invention a pour objet un dispositif de mixage vidéo comprenant au moins une pluralité de modules d'acquisition de signaux vidéo composés de pixels, une unité de traitement de type réseau logique, un processeur et un module de sortie vidéo, dispositif dans lequel : • le processeur est agencé pour recevoir et interpréter des données externes de mixage et pour transmettre des paramètres de calculs au réseau logique, lesdits paramètres de calcul étant déterminés en fonction desdites données externes de mixage, et • le réseau logique est agencé pour acquérir de façon synchronisée des données numériques desdits pixels en entrée et pour effectuer des opérations de calcul fonction desdits paramètres de calcul sur lesdits pixels acquis pour la génération et la transmission audit module de sortie vidéo d'un signal vidéo de sortie.

Description

TABLE DE MIXAGE VIDÉO
La présente invention concerne les dispositifs et procédés de mixage vidéo, notamment de plusieurs flux vidéo non compressés.
L'invention permet le mélange et la manipulation de flux vidéo en temps réel. Ces flux vidéo sont organisés selon une structure hiérarchisée et manipulés de façon originale en leur appliquant des effets et en les incrustant les uns dans les autres.
On connaît depuis la fin des années 80 des dispositifs de mixage vidéo mettant en œuvre des traitements analogiques sur des signaux analogiques (notamment US 5 027 213 et GB 2 227 903). Ces solutions apparaissent maintenant quelque peu archaïques au regard des promesses qu'offre le traitement numérique : modularité, pluralités de traitements et configuration aisée d'un même matériel.
On connaît également, par le brevet EP 0 573 293, un appareil de mixage vidéo à partir d'un signal enregistré et d'un signal graphique généré par une unité de traitement informatique. Cette solution n'est pas appropriée aux utilisations actuelles dans lesquelles il est souhaitable de pouvoir acquérir et combiner, en temps réel, de nombreux flux vidéo.
On connaît également, par le brevet US 5 872 565, un système de traitement vidéo en temps réel permettant l'acquisition d'un grand nombre de signaux vidéo et l'application de divers effets à ces signaux. Ce système repose sur la présence de cartes de traitement vidéo, lesquelles sont préparamétrées. L'inconvénient de cette solution est qu'elle réalise une gestion brute des données, nécessitant une grande puissance de calcul pour l'unité de traitement (proportionnellement au nombre d'entrées vidéo) et qu'elle ne permet pas une interaction forte de la part de l'utilisateur pour modifier dans le temps les paramètres de mixage. Les ressources matérielles de l'art antérieur disponibles pour les traitements vidéo sont soit trop spécialisées (carte de traitement vidéo dont la configuration matérielle est dédiée à un nombre restreint de manipulations ou d'opérations) soit trop généralistes (cas d'un processeur d'ordinateur) et pas assez puissantes pour des traitements en temps réel.
Un problème de l'art antérieur concerne donc le traitement en temps réel de plusieurs flux vidéo non compressés (c'est-à-dire un traitement pixel par pixel) alors que la puissance de calcul reste limitée. Il ressort ainsi le besoin d'optimiser la gestion des traitements spécifiques et coûteux concernant les pixels des flux vidéo et des traitements plus généraux relatifs à des paramètres ou à des signaux audio.
L'invention vise à résoudre ce problème en proposant un dispositif optimisé quant à l'unité de traitement et de calcul. L'optimisation de l'unité de traitement et de calcul repose sur l'utilisation de deux entités de traitement différentes : l'une dédiée à des calculs de paramètres (à partir de signaux externes et/ou d'informations en provenance de l'utilisateur) et l'autre consacrée aux calculs directs des pixels de la vidéo de sortie à partir de ceux des vidéos en entrée.
Une application de la présente invention vise notamment les plateformes de mixage vidéo pour des représentations temps réel (en direct), mélangeant audio et plusieurs vidéos.
À cet effet, la présente invention a tout d'abord pour objet un dispositif de mixage vidéo comprenant au moins une pluralité de modules d'acquisition de signaux vidéo composés de pixels, une unité de traitement de type réseau logique, par exemple un FPGA (Field-Programmable Gâte Array - réseau prédiffusé programmable par l'utilisateur), un processeur, par exemple un DSP (Digital Signal Processor - processeur de signal numérique) et un module de sortie vidéo, dispositif dans lequel :
• le processeur est agencé pour recevoir et interpréter des données externes de mixage et pour transmettre des paramètres de calcul audit réseau logique, lesdits paramètres de calcul étant déterminés en fonction desdites données externes de mixage, et
• le réseau logique est agencé pour acquérir de façon synchronisée des données numériques desdits pixels en entrée depuis lesdits modules d'acquisition et pour effectuer des opérations de calcul fonction desdits paramètres de calcul sur lesdits pixels acquis, pour la génération et la transmission audit module de sortie vidéo d'un signal vidéo de sortie.
On entend par réseau logique, un circuit intégré logique composé de nombreuses cellules logiques élémentaires réalisant des fonctions de calculs numériques. Ces réseaux logiques peuvent être non programmables, type ASIC (Application Spécifie Integrated Circuit, circuit intégré spécialisé) ou programmables. Dans ce dernier cas, les cellules logiques élémentaires sont librement assemblables et peuvent être reprogrammées après la fabrication du réseau et pendant son utilisation. Ces cellules sont connectées par programmation, afin de réaliser la ou les fonctions numérique(s) voulue(s). Un intérêt de ces réseaux réside dans la possibilité de les configurer pour des tâches ou calculs spécifiques et notamment pour des traitements parallèles au niveau pixel de plusieurs flux vidéo d'entrée, ces traitements étant généralement coûteux en ressources au regard du nombre de données à traiter. On connaît notamment le réseau de type FPGA (field-programmable gâte array, réseau de portes programmables in-situ). Le FPGA est programmé en blocs logiques utilisés lors des calculs, ces blocs logiques requerrant des paramètres de calcul : par exemple, le degré de transparence d'une couche vidéo (composante alpha vue ci-après), la rapidité de transition, les effets souhaités, les paramètres d'effet (intensité de déformation, ...), ... On entend par processeur un composant électronique optimisé pour les calculs. Il s'agit généralement d'un processeur associé à un microprogramme exécutable dans lequel des règles de calcul ont été établies. Dans la présente invention, ces règles de calcul concernent principalement la conversion de signaux extérieurs générés par un utilisateur au moyen d'une interface homme-machine (IHM - boutons de sélections, potentiomètres) en des paramètres de calculs pour le FPGA (paramètres de mixage : choix d'un effet visuel plutôt qu'un autre, intensité et durée d'un effet, ...). Le DSP constitue l'«intelligence » du système car interprète des données, alors que le FPGA ne réalise que des calculs bruts. Il existe un grand nombre de processeurs pour le traitement de données tels que des microprocesseurs, des processeurs ARM (Advanced RISC Machines), des processeurs DSP (Digital Signal Processor - processeur de signal numérique), ...
Pour la description ci-après, les termes « réseau logique », « réseau logique programmable » et FPGA sont à entendre comme synonymes. De même, on utilise dans la suite indifféremment les termes « processeur(s) » et « DSP » pour désigner le même composant de traitement de la plateforme de mixage vidéo.
La séparation des fonctions DSP et FPGA est clé pour l'invention : d'une part, le DSP effectue tous les calculs relatifs aux paramètres d'effets et traitements vidéo (fonction de pilotage du DSP) et d'autre part, le FPGA réalise ces traitements « bruts » de la vidéo - pixel par pixel - en fonction, notamment des paramètres que lui transmet le DSP (fonction de traitement vidéo du FPGA). FPGA et DSP communiquent via un bus asynchrone ou synchrone, et, parallèle ou série. Cependant, les composants matériels relatifs aux fonctions DSP et FPGA peuvent être réunis sur un même circuit intégré. En outre, il est envisagé qu'une partie du réseau logique soit précâblée en dur pour réaliser les fonctions de DSP. On a du coup un unique composant matériel tout en conservant la même architecture DSP-réseau logique tous deux reliés par un bus. L'architecture modulaire due aux modules d'entrée peut générer des problèmes concernant le déphasage et la désynchronisation des différents signaux vidéo d'entrée. Une synchronisation des vidéos d'entrée est souhaitable pour permettre la lecture synchronisée des données par le FPGA. Celle-ci est réalisée lors de l'acquisition des données de pixels par le FPGA. Ainsi, la lecture d'un même pixel de plusieurs sources au travers des modules d'entrée pour enregistrement en mémoire vive est réalisée de façon synchronisée afin que le FPGA dispose en mémoire vive des mêmes pixels (pixels ayant la même position dans les différentes images sources) sans décalage pour un traitement optimisé en rapidité. Dans ce dessein, lesdits modules d'acquisition comprennent chacun une mémoire de type premier entré, premier sorti « FIFO » pour le stockage des données numériques desdits pixels acquis et ledit réseau logique est apte à lire simultanément, dans lesdites mémoires, les données numériques correspondant à un même pixel dans lesdits signaux vidéo en entrée.
On entend par « correspondants » deux pixels ayant la même position (mêmes coordonnées) dans deux images différentes, provenant ici de deux signaux vidéo d'entrée différents. Si les images n'ont pas la même dimension une règle de proportionnalité est appliquée pour en déduire le pixel ayant approximativement la même position relative dans l'image (au regard des dimensions générales). Éventuellement, des lois plus élaborées faisant intervenir un ré-échantillonnage de l'image peuvent également être utilisées. Grâce à la présence des mémoires dans les modules d'acquisition, le FPGA a à sa disposition un grand nombre de pixels composant chacune des images acquises. De ce fait, il peut synchroniser la lecture des données du premier pixel de chacune des images de sorte que la lecture des pixels suivants selon le principe de premier entré, premier sorti, est effectuée simplement. Un autre problème que vise à résoudre l'invention est relatif à l'optimisation des ressources fournies par le FPGA et notamment la gestion de la mémoire pour optimiser les cycles de lecture/écriture des données vidéo et le nombre d'entrées/sorties disponibles par le FPGA. En effet, les réseaux logiques programmables économiques sont limités en nombre de broches de connexion. Il apparaît dès lors important d'optimiser l'utilisation de celles-ci permettant ainsi de diminuer les « câblages » internes et externes au FPGA (c'est-à-dire notamment la complexité de la programmation en VHDL Very-high-speed integrated circuit Hardware Description Language_ du réseau FPGA) et de connecter d'autres options (par exemple une liaison M\D\_Musical Instrument Digital Interface) sur le FPGA. Une optimisation importante concerne les mémoires pour le stockage des données des pixels en vue des traitements du FPGA.
Dans ce dessein, le dispositif peut comprendre, en outre, une pluralité de mémoires vives (SRAM ou SDRAM par exemple) connectées audit réseau logique par l'intermédiaire de bus d'adresses et de données, le nombre de bus d'adresses étant inférieur au nombre de signaux vidéos d'entrée, lesdites mémoires vives étant dédiées chacune à un seul module d'acquisition pour stocker les données numériques de pixels lues par le réseau logique dans lesdites mémoires de type FIFO, ledit réseau logique étant apte à stocker les données numériques de pixels correspondants, sur au moins deux mémoires vives connectées au même bus d'adresse en utilisant une ou plusieurs même(s) adresse(s) mémoire.
Chacune des mémoires a son propre bus de données relié au FPGA et éventuellement un bus de contrôle. Un bus d'adresses se trouve commun à plusieurs mémoires. Puisque l'écriture en mémoire est une opération consommatrice de temps et que l'on souhaite disposer d'images en entrée synchronisées, l'utilisation d'une même adresse mémoire pour le stockage des données de pixels correspondants de deux images est envisagé. Ainsi, on mutualise l'écriture en mémoire par la génération d'une (ou plusieurs) même adresse mémoire à plusieurs mémoires vives. On utilise plusieurs adresses mémoires pour un même pixel si les mots binaires des mémoires ne sont pas suffisamment grands pour stocker toutes les données des composantes d'un pixel.
Cette optimisation est rendue possible du fait que les temps d'accès aux mémoires en écriture et en lecture permettent un accès en écriture (24,5 ns pour une mémoire SRAM) et plusieurs accès en lecture (12,2 ns par lecture) pendant un cycle d'acquisition d'un pixel (environ 1 12,5 ns pour les trois composantes d'un signal PAL).
Selon la bande passante disponible sur les bus, il est envisagé de disposer de deux mémoires par bus d'adresses afin de disposer de suffisamment de temps pour effectuer toutes les opérations de lecture et écriture pendant une période « pixel ».
Une autre solution consiste à associer un deuxième FPGA u premier afin de fournir le nombre de broches suffisant et des performances équivalentes même si elle n'apparaît pas satisfaisante économiquement parlant.
Une optimisation qui peut être complémentaire de celle évoquée précédemment consiste à combiner au sein d'un même mot binaire de mémoire au moins deux composantes de pixel. Cela est particulièrement intéressant pour un signal vidéo au format 4 :2 :2 : on stocke dans un mot mémoire les données Y et Cb d'un premier pixel et les données Y' et Cr du pixel suivant. Dans ce dessein, lesdites mémoires vives sont aptes à stocker des mots binaires de longueur au moins égale à deux fois la longueur des données d'une composante de pixel, et le réseau logique est apte à générer sur ledit bus de données un mot comprenant les données numériques d'au moins deux composantes de pixels correspondants pour stockage dans ladite mémoire vive. Une extension de ce mode de réalisation consiste à utiliser un même mot binaire de mémoire pour stocker toutes les données de plusieurs pixels, par exemple un mot mémoire de 4 octets pour stocker Y-Cr-Cb-Y' de deux pixels consécutifs d'une vidéo 4 :2 :2.
Afin d'optimiser au maximum les ressources « broches » du FPGA au détriment du coût des mémoires vives utilisées, une alternative de réalisation consiste à utiliser une seule mémoire pour l'ensemble des données de pixels des vidéos d'entrée. Ainsi, le dispositif comprend une unique mémoire vive connectée audit réseau logique par l'intermédiaire d'un bus d'adresses et d'un bus de données, la mémoire étant apte à stocker des mots binaires de longueur au moins égale à la longueur des données des composantes d'un pixel multipliée par le nombre de signaux d'entrée, et le réseau logique étant apte à générer un mot comprenant les données numériques des pixels correspondants de tous les signaux d'entrée et à stocker ce mot dans la mémoire vive.
Afin de permettre une interaction du dispositif avec un utilisateur en vue de la création artistique d'effets vidéo, ce dispositif comprend, en outre, une interface Homme-Machine IHM connectée audit DSP pour la sélection et la transmission desdites données externes de mixage par un utilisateur. Éventuellement, cette IHM matérielle peut être reliée au FPGA, lequel réalise un traitement/décodage du signal généré afin de transmettre des données exploitables par le DSP.
Les signaux issus de cette IHM sont interprétés par le DSP puis traduits en des paramètres, lesquels sont transmis au FPGA pour paramétrer les blocs logiques de traitement.
Dans tout dispositif de mixage, aussi bien audio que vidéo, il est intéressant de disposer de voies de prévisualisation (préécouté pour l'audio) pour préparer les effets désirés. Il est ainsi prévu que le dispositif comprend, en outre, un module de sortie vidéo de prévisualisation connecté à un module de commutation, ledit réseau logique étant programmé pour fournir audit module de commutation des données de pixels calculées en différents points desdites opérations, et ledit DSP étant apte à piloter ledit module de commutation en fonction des interactions de l'utilisateur avec ladite IHM.
L'utilisateur relie un moniteur au module de sortie vidéo pour visualiser les signaux vidéos créés en différents points de la chaîne de traitement du FPGA. Ce dernier est programmé pour fournir en permanence des données de calculs intermédiaires (en différents emplacements qui auront été déterminés au préalable lors de la programmation ou le câblage du réseau) à un multiplexeur ou commutateur. L'utilisateur interagit avec le commutateur par l'intermédiaire de l'IHM afin de sélectionner et commuter vers une sortie de prévisualisation (convertisseur numérique analogique) les données numériques issues d'un emplacement désiré de la chaîne de traitement du FPGA.
Éventuellement, le FPGA peut être programmé pour effectuer des traitements additionnels sur les données prélevées en différents points de la chaîne de calcul afin de proposer des fonctionnalités accrues de prévisualisation : par exemple, fournir un « quadra » permettant d'afficher simultanément les quatre voies vidéo en entrée.
Le mixage vidéo pouvant consister à superposer plusieurs vidéos en jouant sur la transparence des différentes images, il apparaît important pour l'utilisateur de disposer de moyens efficaces pour la sélection d'une hiérarchie d'empilement de ces vidéos. Il est ainsi prévu que ladite interface IHM comprend un clavier bidimensionnel à NxM touches où une dimension représente le nombre de signaux d'entrée vidéo et l'autre dimension le nombre de couches, et dans lequel une seule touche par ligne et par colonne est active pour la fonction d'empilement de couches, ledit DSP étant apte à paramétrer le réseau logique pour la superposition des signaux d'entrée dans le signal de sortie en fonction desdites touches actives dudit clavier. En équipant ces touches d'indicateur lumineux de touches actives pour identifier la position d'une vidéo dans la hiérarchie des couches, il devient ainsi aisé à l'utilisateur de suivre rapidement et efficacement l'évolution de l'empilement.
Par exemple, pour quatre vidéos en entrée, on prévoit un clavier 4x4 dont les lignes représentent les couches d'empilement des vidéos et les colonnes représentent les vidéos. À un instant donné, l'utilisateur identifie rapidement quelle vidéo est la plus haute dans l'empilement en déterminant (grâce à l'indicateur lumineux) la colonne correspondant à la touche illuminée de la première ligne.
L'appui d'une touche inactive par l'utilisateur provoque la modification de touches actives afin de garantir qu'une seule vidéo est affectée à chacune des couches. La modification peut consister en l'interversion de couche entre la vidéo affectée à une nouvelle couche par l'appui de la touche et la vidéo qui était affectée à cette couche. Mais cette modification peut être plus complexe, par exemple en remontant ou redescendant d'une couche les vidéos qui étaient affectées aux couches intermédiaires entre la nouvelle couche sélectionnée et l'ancienne couche désélectionnée.
Dans une variante, il est prévu que l'interversion de deux signaux sur deux couches est réalisée lorsque l'utilisateur sélectionne les deux touches actives relatives à ces deux signaux et couches.
Des instruments musicaux électroniques peuvent être associés à la table de mixage comme des interfaces homme- machine ou pour élargir les interactions de la table de mixage. Il existe de nombreux appareils produisant des signaux MIDI, notamment des instruments de musique numériques (guitare, synthétiseur, ...). Un signal audio peut être utilisé comme source de paramètres pour le traitement vidéo du FPGA. Le flux audio est analysé en temps réel ; un certain nombre d'informations en sont extraites (le tempo musical , le contenu fréquentiel - proportion de graves et d'aiguës -, le niveau - « volume » sonore -, la hauteur des notes jouées, les « attaques » des notes, ... )- Ces informations sont ensuite utilisées pour modifier des paramètres de la chaîne vidéo ou pour synchroniser le signal audio et les traitements vidéos (déclenchement d'effets sur apparition d'une caractéristique donnée). Outre la réception d'informations MIDI interprétées par le
DSP pour paramétrer le FPGA, le DSP peut également générer un flux MIDI à partir de ses propres calculs et/ou de calculs (intermédiaires ou non) du FPGA pour modifier le comportement ou piloter des équipements externes tels que des instruments électroniques de musique.
Dans ce mode de réalisation, le dispositif comprend une interface M IDI reliée audit DSP, soit directement soit par l'intermédiaire du FPGA, ladite interface M IDI étant apte :
• à recevoir des signaux M IDI émis par un dispositif électronique adéquat distant, ledit DSP étant apte à convertir lesdits signaux en des paramètres de calculs transmis au réseau logique, et/ou
• à émettre des signaux M IDI à destination d'un dispositif électronique distant, ledit DSP étant apte à générer lesdits signaux M IDI en fonction desdits paramètres de calcul utilisés par le réseau logique.
Dans un mode de réalisation, le mixage vidéo est corrélé à un signal audio, par exemple provenant d'un Disc Jokey. Il est à noter que le DSP est par nature approprié pour des traitements audio et qu'à cet effet un module d'acquisition d'une source audio est directement relié au DSP. Cette source audio sert de source de paramètres pour le FPGA (le DSP réalisant alors des calculs sur le flux audio afin d'en déduire ou de prélever les paramètres adéquats). Ce flux audio peut être le flux sonore ambiant de la salle dans laquelle est projetée l'image de sortie de la table de mixage vidéo : les effets vidéo visibles sont ainsi favorablement corrélés à l'ambiance sonore instantanée (un bit sonore rapide peut faire flasher l'image à la même fréquence). À cet effet, le dispositif comprend une interface audio connectée audit DSP, ce dernier étant apte à traiter le signal audio pour déterminer des paramètres de calculs du réseau logique en fonction dudit signal audio.
Selon différents modes de réalisation particuliers, il est prévu :
• de munir le dispositif table de mixage d'une interface USB d'administration et exploitation, notamment pour :
- permettre principalement la mise à jour soit du logiciel de programmation (firmware) du FPGA soit de l'exécutable ou de données complémentaires (registres, fichiers de paramètres) du DSP ;
- permettre l'envoi bidirectionnel de données variées, telles que des photos, des paramètres, des signaux vidéo, ... ; - permettre également de connecter à la table de mixage vidéo une I HM informatique qui vient compléter ou se substituer à 11 H M hardware traditionnelle,
• d'associer le DSP avec un lecteur de cartes mémoires. La carte mémoire connectée au DSP peut avoir deux fonctions principales : - la sauvegarde des paramètres du DSP et/ou du FPGA à un instant donné (sorte de photo instantanée de l'état de la plateforme assimilable à un vecteur d'état), afin d'être capable ultérieurement de récupérer rapidement une configuration connue voire optimisée pour une voie vidéo d'entrée connue ; - le stockage sur la carte d'une image au format JPEG _ Joint
Photographie Experts Group_ (ou autre) par exemple L'image est décompressée par le DSP puis transmise au FPGA par le bus parallèle et stockée dans une des mémoires vives de travail du FPGA. L'image est alors substituée à une piste vidéo d'entrée.
L'invention a également pour objet un procédé comprenant : • une étape de lecture synchronisée par ledit réseau logique des données numériques de pixels correspondants dans les modules d'acquisition,
• une étape de détermination de paramètres de calcul par ledit DSP en fonction de données externes de mixage, • une étape de paramétrage dudit réseau logique par le DSP par l'envoi desdits paramètres de calcul,
• une étape de calculs, par ledit réseau logique, des pixels du signal vidéo de sortie à partir desdites données numériques de pixels lus, et • une étape d'affichage dudit signal vidéo par l'intermédiaire dudit module de sortie vidéo.
Selon un mode de réalisation, le procédé comprend, en outre et suite à ladite étape de lecture synchronisée, une étape d'écriture de données numériques de pixels dans des mémoires vives connectées audit réseau logique par des bus d'adresses et de données, le nombre de bus d'adresses étant inférieur au nombre de signaux vidéo d'entrée et l'écriture des données de pixels correspondants dans deux mémoires vives appartenant à un même bus d'adresses étant réalisée par l'utilisation d'une même adresse mémoire.
Selon différents modes de réalisation pour l'utilisation du clavier bidimensionnel précédemment évoqué, - le procédé comprend, suite à l'activation d'une touche inactive
(ou de deux touches actives) dudit clavier par un utilisateur, une étape de permutation de couche entre la vidéo affectée à une nouvelle couche par la touche nouvellement activée (ou une des deux touches actives sélectionnées) et la vidéo qui était affectée à cette couche (ou l'autre touche active) et une étape de détermination par ledit DSP desdites touches actives pour paramétrer ledit réseau logique. Il s'agit simplement d'une permutation de couche entre deux signaux vidéo.
- le procédé comprend, suite à l'activation d'une touche inactive dudit clavier par un utilisateur, une étape de décalage d'une couche des vidéos qui étaient affectées aux couches intermédiaires entre la nouvelle couche sélectionnée par ladite activation et l'ancienne couche désélectionnée et une étape de détermination par ledit DSP desdites touches actives pour paramétrer ledit réseau logique. Ce décalage peut consister soit en remontant d'une couche soit en descendant d'une couche toutes les vidéos intermédiaires entre l'ancienne couche (couche désélectionnée) affectée à la vidéo dont on souhaite changer le numéro de couche et cette nouvelle couche sélectionnée.
L'invention sera également mieux comprise à l'aide des dessins, dans lesquels : les figures 1 et 1 1 illustrent de façon schématique la structure fonctionnelle du système selon la présente invention ; la figure 2 est une représentation détaillée du système de la figure 1 ; - la figure 3 représente un exemple de chronogramme de lecture/écriture des mémoires SRAM du système des figures 1 et 2 ; la figure 4 illustre de façon détaillée une architecture mémoire selon la présente invention ; la figure 5 illustre le principe de superposition de couches ; les figures 6 à 8 illustrent une interface d'affectation des sources aux différentes couches de la figure 5 ; et les figures 9 et 10 illustrent deux modes de fonctionnements des interfaces des figures 6 à 8.
En référence à la figure 1 , le système se compose d'une unité de traitement programmable FPGA 10 à laquelle sont connectés :
• quatre modules d'acquisition de flux vidéo 12 via une interface de connexion 14, chaque module se présentant sous une forme modulaire amovible ; • des mémoires vidéo 16 de type SRAM (mémoire vive statique) ;
• une unité de traitement numérique DSP 18 via un bus parallèle 20 ;
• un module de sortie vidéo 22 de type convertisseur numérique analogique qui est relié à un dispositif de visualisation ; • une interface M IDI 24 reliée à un ou plusieurs instruments musicaux numériques aptes à émettre ou recevoir un signal M IDI à destination du FPGA ; et
• une interface homme machine I HM 26, laquelle interface peut également avoir des connexions directes avec le DSP 18. Le cœur du système est basé sur une architecture mixte associant un FPGA 10 programmable en VHDL à une unité de traitement numérique DSP 18. Cette dernière vient paramétrer les unités ou blocs logiques du FPGA pour exécuter des calculs sur des données sources vidéos conformément à la programmation du FPGA réalisée par l'utilisateur. La programmation du FPGA permet notamment de soulager le DSP en diminuant le nombre de calculs que ce dernier doit réaliser.
Le système permet à partir des sources vidéos et de paramètres saisis par l'utilisateur sur l'I HM et/ou calculés à partir de flux de données reçus (audio, MIDI , flux video, ... ) de produire des données vidéo « mixées » affichées sur le dispositif de visualisation. De nombreux effets peuvent être mis en œuvre et combinés lors des calculs par le FPGA dont quelques exemples à titre non-limitatif sont :
• modification de la luminosité ou du contraste, mélange de plusieurs couches vidéo, • effets sans utilisation de filtres pour la pixellisation, un rendu négatif, la quantification ou un flash,
• effets utilisant des filtres pour par exemple la détection de contours, l'amélioration de l'image, le filtrage spatial,
• suppression ou permutation de couleur, • transition d'un flux vidéo à un autre (eut, fondu, volet, iris, flou, seuil, ...), ---
Le traitement vidéo est réalisé en temps réel par le système, ce qui impose une fréquence d'environ 27 MHz pour la production d'un pixel de sortie. Il peut être envisagé d'introduire un léger décalage temporel entre l'instant d'acquisition d'une image des flux vidéos et la production d'une image de sortie correspondante.
Les sources vidéo arrivent en entrée des cartes d'acquisition 12. Ces modules d'acquisition 12 fournissent au système en sortie les informations constitutives des pixels (généralement les composantes de luminance Y et de chrominance Cb et Cr), ces données étant produites pixel après pixel, image après image.
Le traitement au cœur du système (FPGA) est réalisé pixel par pixel dans l'espace Rouge-Vert-Bleu RVB, c'est-à-dire que les pixels de l'image de sortie sont calculés successivement les uns après les autres à partir des pixels correspondants des images en entrée ou de pixels équivalents. Ici, « correspondant » signifie que le pixel ayant la position (ligne 30, colonne 1 12) est calculée à partir des pixels ayant la même position dans l'image correspondante des flux vidéo d'entrée. Cependant, des effets (par exemple renversement des images) sur les images peuvent nécessiter l'utilisation de pixels équivalents (ligne 30 en partant de la fin de l'image, colonne 1 12, par exemple). II y a donc une conversion du format YCbCr en RVB par le FPGA avant l'application de la chaîne de traitement de celui-ci puis une nouvelle conversion RVB en YCbCr pour l'image de sortie.
Il est en outre introduit une information de transparence à chacun des pixels pour le traitement précisant les parties de l'image opaques et les parties transparentes. On peut ainsi distinguer dans une image différentes zones auxquelles on accorde une importance plus moins grande (la notion d'importance étant bien entendu dépendante du contexte et des intentions de l'utilisateur). La transparence permet (entre autres) de réaliser des incrustations, les parties transparentes de la première image laissant apparaître la seconde image (le fond). La composante alpha (en plus des composantes RVB) est la composante porteuse de l'information de transparence : elle code la transparence de chaque pixel entre 0 et 1 : α=0 : le pixel est parfaitement transparent αe ]0, 1 [ : le pixel est partiellement transparent α=1 : le pixel est opaque
La composante alpha est parfois intégrée dans le signal vidéo. Dans le cas contraire, elle est synthétisée (par exemple par un générateur de masque générant des formes pré-définies). I l est également prévu d'utiliser une composante d'un autre signal vidéo ou une image... ou de l'extraire de l'image en se basant sur certaines caractéristiques de celle-ci (couleur, luminosité... ). Chaque pixel est donc représenté par un quadruplet : R, V, B et α.
Module d'acquisition vidéo 12
Plus en détail en référence à la figure 2, les quatre modules d'acquisition vidéo 12 sont interchangeables et de plusieurs natures : analogiques-numériques 12' ou totalement numériques
12" . Chaque module 12 comprend un module de traitement et une mémoire FI FO (premier entré, premier sorti). Les modules analogiques peuvent recevoir 4 flux vidéo et 2 flux audio, desquels ils ne prélèvent qu'un seul flux vidéo. De même, les modules numériques prélèvent un seul flux audio-vidéo parmi l'ensemble des flux qui compose le flux multiplexe arrivant en entrée de module. Les signaux vidéos analogiques sont convertis en numériques pour être traités et mélangés. Les différents flux vidéos sont resynchronisés, ce qui nécessite de stocker temporairement les images acquises. Afin de limiter l'espace mémoire et de limiter la bande passante nécessaire aux lectures/écritures dans ces mémoires, les signaux analogiques sont échantillonnés dans le format YCrCb4:2:2, qui compresse les données d'un facteur 3/2.
Le module de traitement d'acquisition prélève ensuite successivement les données de chacun des pixels composant les images de la source vidéo et les enregistre dans la mémoire FIFO. Les mémoires FIFO de tous les modules 12 sont lues de façon synchronisée par le FPGA 10 à la fréquence de lecture de 27 MHz pour des sources vidéo de type PAL, cette fréquence étant fournie par un oscillateur incorporé au FPGA. Pour réaliser cette synchronisation, le FPGA identifie le début de chaque image dans les mémoires et procède à la lecture des données de pixel successifs dans les différentes mémoires FI FO des modules d'acquisition. Ainsi les données lues des différents modules 12 par le FPGA sont synchronisées et en phase. Il est à noter que l'oscillateur permet également de synchroniser les autres éléments électroniques du système DSP, codeur-décodeur, ...
En référence à la figure 4, les mémoires vives 16 sont regroupées par paire sur un même bus d'adresse 28 connecté au FPGA et chacune des mémoires dispose de son propre bus de données 28' et de contrôle 28". Le bus d'adresse est codé sur 19 bits, le bus de données sur 16 bits et le bus de contrôle sur 1 bit. Cette configuration permet de ne requérir que 106 (19*2 + 16*4 + 4) broches sur le FPGA alors qu'une configuration plus simpliste (une mémoire indépendante pour chaque signal vidéo d'entrée) requiert 144 broches, soit 38 broches de plus. Les mémoires sont de 8Mbits permettant de stocker aisément toutes les données d'une image vidéo. Pour une image PAL 720x576 échantillonnée en 4 :2 :2, il y a 829 440 composantes à mémoriser, soit 6,6 Mbits.
Chaque mémoire vive est dédiée à une seule source, par exemple la mémoire SRAM ANAL1 à la première source vidéo Entrée Analog.1 , etc..
Puisque le bus de données est de 16 bits, il n'est possible d'écrire que deux composantes de pixels à la fois en mémoire. On utilise donc deux adresses mémoires pour enregistrer les quatre composantes définissant deux pixels voisins d'un signal 4 :2 :2, comme suit :
Figure imgf000021_0001
où Yi, Cri et Cbi représentent la luminance, chrominance rouge et chrominance bleue du pixel i.
Ecriture d'un pixel pour une mémoire dont le bus de donnée est de 16 bits : Deux pixels entrants consécutifs vont avoir des adresses mémoires consécutives. Dans ce cas, les cycles d'écriture s'optimisent. Pour écrire deux pixels, il faut donc faire deux accès mémoire à deux adresses différentes consécutives. Cela nécessite 8 cycles FPGA (4 cycles pour chaque pixel écrit). Lecture d'un pixel pour une mémoire dont le bus de donnée est de 16 bits : Pour lire un pixel, il faut faire deux accès mémoire à deux adresses différentes consécutives. Cela nécessite 4 cycles FPGA (2 cycles FPGA pour chaque lecture).
Les pixels souhaités par le générateur d'adresse ne sont pas forcément deux pixels consécutifs, selon les effets de mixage souhaités (par exemple un effet miroir peut nécessiter de lire les pixels depuis la fin). Pour cela, la lecture d'un pixel nécessite au moins deux lectures mémoire.
En référence à la figure 3, pendant douze cycles élémentaires (soit 74 ns), le FPGA génère l'adresse unique (4 cycles) pour l'écriture des données de pixels lues des modules d'acquisition et les quatre adresses de lecture (4x2 cycles) de données pour le traitement du pixel de sortie à produire pendant ce cycle (2 adresses pour chacune des mémoires).
A lecture des données de pixels dans les mémoires FIFO 12, le FPGA génère une adresse pour l'écriture des données dans les mémoires 16. Le générateur d'adresses 30 en écriture est unique pour toutes les mémoires 16 et s'incrémente linéairement garantissant l'enregistrement de pixels consécutifs à des adresses mémoires consécutives. L'adresse mémoire générée permet de stocker dans les mémoires en même temps les données transmises sur les bus de données 28' spécifiques à chaque mémoire.
Pour la lecture des données, le FPGA doit générer 4 adresses différentes puisque selon les effets souhaités (miroir, retournement), on n'accède pas de façon identique à deux mémoires 16. Ainsi, chaque source vidéo possède un générateur d'adresse 30 en lecture propre. Le FPGA récupère successivement les données YnCrn et Yn+iCbn pour le pixel n de la première vidéo (mémoire 1 ) et les données YuCru et Yu+iCbu pour le pixel u de la deuxième vidéo (mémoire 2)
La figure 3 ne représente le chronogramme que d'un seul des deux bus 28. Le traitement par le FPGA
La programmation du FPGA en langage VHDL permet d'obtenir un certain nombre d'éléments fonctionnels utiles au calcul d'effets sur les images, par exemple :
• des blocs de déformation en amont du traitement vidéo brut des flux vidéo. Ces blocs reçoivent ou prélèvent les données de pixels des mémoires vives 16 pour les fournir à la suite de la chaîne de traitement ; • des blocs de prétraitements et d'effets FX recevant les signaux des blocs ;
• des blocs d'extraction de la composante alpha des signaux vidéo soit directement du signal (si elle y est incluse) soit par application de fonctions de calcul ; • un multiplexeur central permettant d'aiguiller un flux vidéo (et sa composante alpha) vers une couche donnée ;
• des blocs de contrôle de gains pour chaque piste ainsi que de génération de masques de transitions dont leurs signaux de sorties (α_gain, α_transi) sont multipliés à la composante alpha, en amont des blocs de mélange ;
• des blocs Blend permettant de mélanger deux couches superposées ;
• un bloc d'effets FX en sortie des mélangeurs ;
• des points de pré-visualisation en n'importe quel point de la chaîne de traitement pour visualisation sur une deuxième sortie de prévisualisation du module de sortie 22.
Les traitements réalisés par le FPGA pour chaque pixel portent sur les trois composantes Y, Cr et Cb lues en mémoire.
A titre d'exemple,
• les déformations d'images (symétries, retournements... ) sont rendues possibles grâce à un bloc d'accès aléatoire aux pixels placés en amont de la chaîne de traitement. Pour re-synchroniser les flux vidéos, il est nécessaire de les stocker temporairement dans des mémoires, juste après leur échantillonnage dans les modules 12. Les déformations d'images sont réalisées lors de la lecture de ces mémoires : plutôt que de lire les pixels en mémoire de manière séquentielle (ce qui donne une image non déformée), on accède à n'importe quel pixel de l'image en utilisant les générateurs d'adresse propres 30. Le bloc de déformation est donc un générateur d'adresses spécifique de lecture en mémoire.
• Chaque flux peut être prétraité avant d'être mélangé avec les autres. Les pré-traitements ont pour but de corriger l'image ou au contraire de la déformer à des fins artistiques. De nombreux effets et traitement correctifs peuvent être envisagés, par exemple :
• Réglage du contraste et de la luminosité
• Balances des couleurs
• Inversion des couleurs
• Réductions du nombre de couleurs • Seuil
• Mosaïque
• Extraction de la composante alpha : en utilisation, chaque flux vidéo peut être atténué par l'utilisateur via un contrôle dédié via l'interface IHM 26. Ce gain est mis en oeuvre par une multiplication avec la composante alpha. Ainsi, lorsque le gain est nul, la composante alpha est nulle elle aussi, et les pixels du flux vidéos sont transparents. Quand ce gain est unitaire (pas d'atténuation), la composante alpha est inchangée. La composante alpha appliquée à une piste est extraite d'un signal vidéo en utilisant les informations de couleurs ou de luminosité du flux vidéo. Le signal vidéo utilisé pour l'extraction peut être celui de n'importe piste (et pas nécessairement celle à laquelle on applique la composante alpha). Différentes méthodes d'extraction existent dont :
• Color-key : extraction exploitant les couleurs,
• Chroma-key : extraction exploitant les informations de chroma,
• Luma-key : extraction exploitant les informations de luminosité.
• Aiguillage des flux et de la composante alpha : les images acquises et à traiter sont organisées en couches superposées comme illustré par la figure 5. On organise celles-ci en couches (layers) superposées : les couches sont ordonnées en profondeur : la couche 1 est « au-dessus » de la couche 2, elle- même « au-dessus » de la couche 3, ... Chacune des quatre vidéos d'entrée est affectée à l'une des quatre couches. Cette affectation peut être modifiée pendant le processus de mixage par l'utilisateur au moyen, par exemple de l'interface IHM 26 et le pavé illustré par la figure 6.
La chaîne de traitement vidéo peut être contrôlée par une interface utilisateur matérielle IHM 26 dédiée, composée de contrôles classiques (potentiomètres, boutons, écran...).
Un contrôle spécifique a cependant été développé pour faciliter l'aiguillage des pistes vidéos vers les différentes couches superposées. Ce contrôle est composé d'un ensemble de boutons lumineux disposés en carré, conformément à la figure 6. Il permet de diriger une piste vers une couche donnée. L'éclairage des boutons par une couleur donnée permet d'identifier rapidement la manière dont les pistes sont organisées en couches. Ce contrôle permet également de gérer la réorganisation des pistes lorsqu'une piste est déplacée vers une couche, puisqu'une seule piste peut être affectée à une couche donnée : ainsi pour chaque dimension une seule touche du clavier est active (au sens de l'affectation des pistes aux différentes couches). Ainsi, deux modes sont proposés lorsque l'on souhaite changer une piste de couche :
• le premier mode, illustré par la figure 7, consiste à décaler toutes les pistes affectées aux couches situées entre la couche d'origine et de destination. Par exemple, en partant de la configuration précédente, si l'on souhaite aiguiller la piste 2 (dirigée vers la couche 2) vers la couche 4, les pistes associées aux couches 3 et 4 (ici les pistes 3 et 4) seront décalées. Ce changement de configuration est obtenu en pressant le bouton situé à l'intersection de piste que l'on souhaite déplacer et de la couche vers laquelle on souhaite l'associer (ici, le bouton à l'intersection de la piste 2 et de la couche 4). Ainsi, ce mode est déclenché en appuyant sur une touche du clavier qui n'est pas encore active.
• le deuxième mode, illustré par la figure 8, consiste à permuter deux couches. Par exemple, on peut permuter les pistes 2 et 4
(en partant de la première configuration), ce qui conduit également à affecter la piste 2 vers la couche 4. On active ce mode en maintenant appuyé le bouton (piste 2, couche 2) et en appuyant sur le bouton (piste 4, couche 4) (les deux boutons « allumés » des pistes que l'on souhaite permuter). Ce mode est ainsi déclenché en appuyant sur deux touches actives simultanément (ou en maintenant une première enfoncée et en appuyant sur la seconde).
Bien que très simple, ce contrôle est parfaitement adapté à l'aiguillage des pistes vers les couches. L'éclairage des boutons permet d'afficher l'affection des pistes aux différentes couches, et est tout à fait adapté à une utilisation dans l'obscurité.
Ce contrôle peut également être utilisé pour afficher diverses informations concernant la piste, en tirant profit des différentes couleurs d'éclairage, et d'un éventuel clignotement de l'éclairage. Il peut également être utilisé conjointement à d'autres éléments de l'interface, en utilisant par exemple des doubles appuis : en maintenant enfoncé un bouton « fonction » et en enfonçant l'un des boutons du clavier bidimensionnel associé à une piste (c'est d'un dire l'un des boutons de la colonne associée à cette piste), la « fonction » est appliquée à cette piste. Une variante consisterait à appliquer cette fonction en différents points de la chaîne de traitement en fonction du bouton de la colonne utilisée. Ce contrôle est exploité de la manière suivante : • Si une touche du clavier est enfoncée alors qu'une touche de « fonction » est maintenue enfoncée, c'est cette fonction qui va être appliquée à la piste associée à la touche enfoncée (le numéro de la touche dans la colonne peut alors être paramètre pour cette fonction, ou permettre de sélectionner l'une des variantes de cette fonction). Dans ce cas, l'affectation des pistes aux différentes touches n'est pas affectée • Si une touche non active est enfoncée alors qu'aucune touche « fonction » n'est enfoncée, le routage des pistes vers les couches est modifié. Les pistes affectées aux couches situées entre la couche d'origine et de destination de la piste qui vient d'être modifié vont être décalées (chacune d'entre elles est affectée à la couche située juste au-dessus de la couche qu'elle occupe actuellement si la piste qui est modifiée par l'utilisateur est affectée à une couche située en dessous de celle qu'elle occupe actuellement). L'affectation des pistes vers les couches est alors recalculée et le résultat de ce calcul permet, d'une part, de commander le multiplexeur qui aiguille les pistes vers les couches (et donc de rendre effective la nouvelle affectation des pistes) et, d'autre part, de redéfinir les nouvelles touches actives du clavier et de mettre à jour le retour visuel (allumage des touches du clavier actives, extinction des autres). • Si deux touches actives sont enfoncées (simultanément ou l'une après l'autre si la première est maintenue enfoncée), les deux pistes sont permutées : chacune d'elles est alors dirigée vers la couche qu'occupait l'autre. Dans ce cas l'affectation des pistes aux couches est modifiée (en recalculant la nouvelle affectation des pistes et en commandant en conséquence le multiplexeur qui réalise l'aiguillage), et le jeu de touches actives est mis à jour ainsi que le retour visuel.
Les diagrammes des figures 9 et 10 résument la façon dont peut être recalculée l'affectation des pistes. L'affectation des pistes vers les couches est sauvegardée dans un tableau de N éléments notés piste2couche dont le premier élément est le numéro de la couche à laquelle est affectée la piste 1 , le deuxième élément est le numéro de la couche à laquelle est affectée la piste 2... Ainsi piste2couche[k] est le numéro de la couche affectée à la piste k,
(étant entendu que la couche 1 est « au-dessus » -devant- de la couche 2, et que les pistes et les couches sont numérotées de 1 à N).
Le tableau est initialisé par exemple avec les valeurs 1 , 2, 3, .. , N (c'est-à-dire la première piste affectée à la première couche, la deuxième piste affectée à la deuxième couche... ).
Figure 9, l'utilisateur appuie sur la touche (piste A, couche 2) On compare la nouvelle couche sélectionnée (couche 2) avec l'ancienne couche de la piste 1 (piste2couche[piste A]) :
Si elle est supérieure (au-dessus), alors pour chacune des pistes (k= 1 à N) dont la couche affectée est au-dessous (inférieure ou égale) de la couche 2 nouvellement choisie et au-dessus (strictement supérieure) de l'ancienne couche de la piste 1 , alors la piste k en question est descendue d'une couche.
Si elle est inférieure (au-dessous), alors pour chacune des pistes (k=1 à N) dont la couche affectée est au-dessus (supérieure ou égale) de la couche 2 nouvellement choisie et au-dessous (strictement inférieure) de l'ancienne couche de la piste 1 , alors la piste k en question est remontée d'une couche. Dans le deuxième cas (figure 10), il s'agit d'une simple substitution de deux pistes par appui sur deux touches actives.
Dans la suite des traitements réalisés par le FPGA, les couches sont mélangées deux par deux, en commençant par les deux couches inférieures. Le résultat de cette fusion est utilisé comme fond pour la piste située juste au-dessus et se combine avec celle-ci. Le mélange de deux couches prend en compte les couleurs et la transparence de ces couches (composante alpha), et le résultat dépend du type de mélange utilisé.
Selon les effets souhaités, il convient de requérir divers modes de mélanges lesquels reposent sur des opérations arithmétiques ou logiques, de sorte que les combinaisons possibles sont infinies.
Pré-visualisation
Afin de faciliter les réglages pour l'utilisateur, une sortie vidéo supplémentaire est proposée : elle permet de visualiser n'importe quel point de la chaîne de traitement. Ainsi, l'utilisateur peut par exemple effectuer les réglages qu'il souhaite pour une piste en visualisant le résultat, avant que celui-ci ne soit transmis sur la sortie principale.
Pour réaliser cette fonctionnalité, le FPGA est programmé pour connecter divers points dans la chaîne de calculs (par exemple les points d'entrée des vidéos, les sorties de calculs d'effets, ...) à un commutateur piloté par l'IHM. De façon continue, les données calculées par le FPGA sont transmises au commutateur. L'utilisateur par une commande de sélection-pilote le commutateur
(éventuellement via le DSP pour interpréter le signal généré par l'IHM et paramétrer le FPGA en conséquence) afin de fournir au convertisseur numérique-analogique de la sortie vidéo supplémentaire le signal qu'il souhaite prévisualiser. Le DSP 18
De retour à la figure 2, le DSP est utilisé pour la génération des paramètres à appliquer au FPGA. Il est constitué d'un processeur pour l'exécution d'un programme applicatif stocké dans une mémoire SDRAM synchronous dynamic random access memory, mémoire vive dynamique synchrone_ ou équivalente (Flash, ... ). Ce programme réalise l'acquisition de données extérieures, l'interprétation de celles-ci et la production et transmission de paramètres au FPGA. Quelques exemples de sources extérieures : un signal audio reçu par le codeur-décodeur 32, l'interface homme-machine 26 connectée directement au DSP ou par l'intermédiaire du FPGA si un traitement préliminaire des données est nécessaire, des données M IDI en provenance d'équipements numériques musicaux reçues par une interface dédiée 24, des données contenues dans des cartes mémoires via un lecteur de cartes connecté au DSP, un ordinateur relié à la plateforme de mixage par un port USB par exemple pour offrir une I HM virtuelle, ...
Pilotage par MIDI
La chaîne de traitement vidéo peut être pilotée par des messages M IDI , issu d'instruments de musiques numériques. Les messages supportés ainsi que les paramètres qu'ils contrôlent sont configurables. Les signaux M IDI sont numériques et directement traités par le DSP : une guitare électrique numérique est branchée au système via une connexion M IDI et produit des signaux concernant, par exemple, les informations suivantes :
Le volume sonore de la guitare, identifié dans le flux M IDI par id=7 prend une valeur G [0 ; 127] , soit sur 7 bits, De même le trémolo dont id=24 prend une valeur G [0 ; 127] ,
Le message M IDI (id=7, valeur= 100) est reçu par le DSP (via le FPGA si nécessaire), lequel DSP détermine le paramétrage du FPGA approprié par l'utilisation d'une table de correspondance ou d'indirection ou d'une fonction de correspondance, par exemple : valeur a(couche\) =
127
Ces tables ou fonctions associent les informations M IDI (un identifiant et tout ou partie de la plage de valeurs) à une valeur dans un registre FPGA, le DSP paramètre le FPGA après détermination de la valeur du registre FPGA. Ce registre ayant été prédéfini comme paramètre de certains calculs, le signal de sortie tiendra compte des données M IDI ainsi reçues. Ainsi, la transparence de la couche 1 est paramétrée à α(couche1 )=0,78.
Cette valeur est donc transmise, via le bus 20, par le DSP au FPGA comme étant la nouvelle valeur du registre α(couchei ). Il s'en suit que les calculs réalisés après cette affectation de registre tiendront compte de la nouvelle valeur déterminée. Ainsi, lorsque le musicien joue de son instrument, la valeur de transparence de la couche 1 varie, donnant un effet vidéo corrélé à l'intensité sonore de l'instrument de musique.
Génération d'un signal MIDI
De façon réciproque, la génération d'une valeur par le FPGA à la fin d'une opération de calcul , par exemple l'extraction de luminosité d'une vidéo, peut venir paramétrer un instrument musical numérique. Le DSP récupère la valeur de la luminosité moyenne d'une image et la compare à une table d'indirection :
Figure imgf000031_0001
Pour une valeur de luminosité de 30%, le DSP émet un signal MIDI (id=24, valeur=95), lequel signal modifie les paramètres de l'instrument musical.
Eventuellement, des paramètres ou résultats de calcul du DSP peuvent également être le support de données transmises par signaux MIDI.
Pilotage par un signal audio La chaîne de traitement vidéo peut également être pilotée par un flux audio. Un codée 32 (codeur-décodeur) audio permet la conversion des signaux audio analogiques en entrée en signaux numériques directement exploitables par le DSP. Le flux audio numérisé est transmis au DSP et analysé en temps réel, et un certain nombre d'informations en est extrait. Ces informations sont utilisées pour modifier des paramètres de la chaîne vidéo de façon similaire au signal MIDI. Elles sont également utilisées à des fins de synchronisation entre le signal audio et les traitements vidéos (déclenchement d'effets sur apparition d'une caractéristique donnée). De nombreuses informations peuvent être extraites, comme par exemple :
• le tempo musical
• le contenu fréquentiel (proportion de graves, d'aiguës)
• le niveau (« volume » sonore)
• la hauteur des notes jouées • les « attaques » des notes
L'exploitation du signal audio est intéressante puisqu'elle permet dès lors de corréler le signal audio généré par un dise jokey avec les effets vidéo qu'un mixeur vidéo produira. A cet effet, une fois le flux audio numérique exploité par le DSP, le codée permet de reconvertir le signal audio numérique en un signal de sortie analogique pour diffusion.
Utilisation d'une carte mémoire ou d'une clé USB La carte mémoire est utilisée comme moyen de sauvegarde de configuration. Si l'utilisateur de la plateforme de mixage souhaite sauvegarder une configuration qu'il apprécie tout particulièrement, il déclenche une étape de sauvegarde via l' I HM . Le DSP procède alors, via le bus 20, à la récupération de tous les paramètres stockés dans les registres du FPGA et/ou de ses propres paramètres, et à l'enregistrement de ceux-ci dans un fichier de configuration approprié sur la carte mémoire (ou clé USB). Des moyens traditionnels de nommage des configurations et de sélection de configuration à restaurer (le DSP modifiant les registres du FPGA avec les données en mémoire) sont prévus.
La carte mémoire peut également être utilisée comme source de vidéo statique, c'est-à-dire d'une image. Si l'utilisateur le souhaite, le DSP transmet au FPGA les données de l'image. Le FPGA substitue alors dans la mémoire vive 16 une vidéo qu'il souhaite remplacer avec l'image. Une telle image peut être utilisée pour constituer un fond fixe (couche 4) ou pour réaliser un masque (couche 1 ).
En outre, une connexion USB est prévue sur le DSP pour connecter un ordinateur. Cela permet de fournir des fonctionnalités d'administration (modification de la programmation du FPGA, modification du logiciel DSP et des tables de correspondance, ... ) mais également de doter la plateforme de moyens de pilotage (I HM) évolués via une interface logicielle.
Eventuellement, des diffuseurs d'odeurs sont connectés à la plateforme de mixage, lesquels diffuseurs sont commandés (choix d'une odeur, intensité de diffusion, ... ) par des paramètres ou des résultats de calculs du FPGA ou DSP. Il est ainsi possible d'associer des odeurs à des effets vidéo.

Claims

REVENDICATIONS
1 . Dispositif de mixage vidéo comprenant au moins une pluralité de modules d'acquisition (12) de signaux vidéo composés de pixels, une unité de traitement (10), un processeur (18) et un module de sortie vidéo (22),
• le processeur (18) étant agencé pour recevoir et interpréter des données externes de mixage et pour transmettre des paramètres de calculs à l'unité de traitement (10), lesdits paramètres de calcul étant déterminés en fonction desdites données externes de mixage,
• l'unité de traitement étant agencée pour générer et transmettre audit module de sortie vidéo d'un signal vidéo de sortie, caractérisé par le fait que l'unité de traitement (10) est du type réseau logique agencé pour acquérir de façon synchronisée des données numériques desdits pixels en entrée depuis lesdits modules d'acquisition (12) et pour effectuer des opérations de calcul fonction desdits paramètres de calcul sur lesdits pixels acquis pour la génération dudit signal vidéo de sortie.
2. Dispositif selon la revendication précédente, caractérisé en ce que lesdits modules d'acquisition (12) comprennent chacun une mémoire de type premier entré, premier sorti « FI FO » (12') pour le stockage des données numériques desdits pixels et ledit réseau logique (10) est apte à lire simultanément dans lesdites mémoires (12') les données numériques correspondant à un même pixel dans lesdits signaux vidéo en entrée.
3. Dispositif selon la revendication précédente, caractérisé en ce qu'il comprend, en outre, une pluralité de mémoires vives (16) connectées audit réseau logique (10) par l'intermédiaire de bus d'adresses et de données (28), le nombre de bus d'adresses étant inférieur au nombre de signaux vidéo d'entrée, lesdites mémoires vives (16) étant dédiées chacune à un seul module d'acquisition (12) pour stocker les données numériques de pixels lues par le réseau logique dans lesdites mémoires de type FIFO (12'), ledit réseau logique étant apte à stocker les données numériques de pixels correspondants, sur au moins deux mémoires vives connectées au même bus d'adresse en utilisant une ou plusieurs même(s) adresse(s) mémoire.
4. Dispositif selon la revendication 3, caractérisé en ce que lesdites mémoires vives (16) sont aptes à stocker des mots binaires de longueur au moins égale à deux fois la longueur des données d'une composante pixel, et le réseau logique (10) est apte à générer sur ledit bus de données (28) un mot comprenant les données numériques d'au moins deux composantes pixels correspondants pour stockage dans ladite mémoire vive.
5. Dispositif selon la revendication 1 , caractérisé en ce qu'il comprend une unique mémoire vive (16) connectée audit réseau logique (16) par l'intermédiaire d'un bus d'adresses et d'un bus de données (28), la mémoire étant apte à stocker des mots binaires de longueur au moins égale à la longueur des données des composantes d'un pixel multipliée par le nombre de signaux d'entrée, et en ce que le réseau logique est apte à générer un mot comprenant les données numériques des pixels correspondants de tous les signaux d'entrée et à stocker ce mot dans la mémoire vive.
6. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend, en outre, une interface Homme-Machine I HM (26) connectée audit processeur (18) pour la sélection et la transmission desdites données externes de mixage par un utilisateur.
7. Dispositif selon la revendication précédente, caractérisé en ce qu'il comprend, en outre, un module de sortie vidéo de prévisualisation connecté à un module de commutation, ledit réseau logique étant apte à fournir audit module de commutation des données de pixels calculées en différents points desdites opérations, et ledit processeur étant apte à piloter ledit module de commutation en fonction des interactions de l'utilisateur avec ladite I HM.
8. Dispositif selon la revendication 6, caractérisé en ce que ladite interface I HM (26) comprend un clavier bidimensionnel à NxM touches où une dimension représente le nombre de signaux d'entrée vidéo et l'autre dimension le nombre de couches, et dans lequel une seule touche par ligne et par colonne est active, ledit processeur étant apte à paramétrer le réseau logique pour la superposition des signaux d'entrée dans le signal de sortie en fonction desdites touches actives dudit clavier.
9. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend une interface MI DI
(24) reliée audit processeur (18), ladite interface M IDI étant apte :
• à recevoir des signaux M IDI émis par un dispositif électronique adéquat distant, ledit processeur étant apte à convertir lesdits signaux en des paramètres de calculs transmis au réseau logique, et/ou
• à émettre des signaux M IDI à destination d'un dispositif électronique distant, ledit processeur étant apte à générer lesdits signaux M IDI en fonction desdits paramètres de calcul utilisés par le réseau logique.
10. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend une interface audio (32) connectée audit processeur (18), ce dernier étant apte à traiter le signal audio pour déterminer des paramètres de calculs du réseau logique en fonction dudit signal audio.
1 1 . Procédé de mixage vidéo dans un dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend :
• une étape de lecture synchronisée par ledit réseau logique (10) des données numériques de pixels correspondants dans les modules d'acquisition (12), • une étape de détermination de paramètres de calcul par ledit processeur (16) en fonction de données externes de mixage,
• une étape de paramétrage dudit réseau logique (10) par le processeur par l'envoi desdits paramètres de calcul,
• une étape de calculs, par ledit réseau logique, des pixels du signal vidéo de sortie à partir desdites données numériques de pixels lus, et
• une étape d'affichage dudit signal vidéo par l'intermédiaire dudit module de sortie vidéo (22).
12. Procédé de mixage vidéo selon la revendication précédente, caractérisé en ce qu'il comprend, en outre et suite à ladite étape de lecture synchronisée, une étape d'écriture de données numériques de pixels dans des mémoires vives connectées audit réseau logique par des bus d'adresses et de données, le nombre de bus d'adresses étant inférieur au nombre de signaux vidéo d'entrée et l'écriture des données de pixels correspondants dans deux mémoires vives appartenant à un même bus d'adresses étant réalisée par l'utilisation d'une même adresse mémoire.
13. Procédé de mixage vidéo selon la revendication 1 1 , dans un dispositif selon la revendication 8, caractérisé en ce qu'il comprend, suite à la sélection d'au moins une touche dudit clavier par un utilisateur, une étape de réaffectation des couches auxdits signaux vidéos d'entrée.
14. Procédé de mixage vidéo selon la revendication précédente, caractérisé en ce que ladite étape de réaffectation consiste en une étape de permutation de couche entre la vidéo affectée à une nouvelle couche par la touche nouvellement activée et la vidéo qui était affectée à cette couche et une étape de détermination par ledit processeur desdites touches actives pour paramétrer ledit réseau logique.
15. Procédé de mixage vidéo selon la revendication 13, caractérisé en ce que ladite étape de réaffectation consiste en une étape de décalage d'une couche des vidéos qui étaient affectées aux couches intermédiaires entre la nouvelle couche sélectionnée par ladite activation et l'ancienne couche désélectionnée et une étape de détermination par ledit processeur desdites touches actives pour paramétrer ledit réseau logique.
PCT/FR2007/050661 2006-01-20 2007-01-18 Table de mixage vidéo WO2007083063A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0650217A FR2896652B1 (fr) 2006-01-20 2006-01-20 Table de mixage video
FR0650217 2006-01-20

Publications (1)

Publication Number Publication Date
WO2007083063A1 true WO2007083063A1 (fr) 2007-07-26

Family

ID=36282570

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2007/050661 WO2007083063A1 (fr) 2006-01-20 2007-01-18 Table de mixage vidéo

Country Status (2)

Country Link
FR (1) FR2896652B1 (fr)
WO (1) WO2007083063A1 (fr)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0577249A1 (fr) * 1992-07-02 1994-01-05 Ampex Systems Corporation Architecture déterminant la priorité du mélangeur de l'enchaîné
US5872565A (en) * 1996-11-26 1999-02-16 Play, Inc. Real-time video processing system
US20020118302A1 (en) * 2001-02-28 2002-08-29 Akira Iizuka Video mixer apparatus
US20040189878A1 (en) * 2003-03-25 2004-09-30 Yamaha Corporation Apparatus and program for setting video processing parameters
US20050162559A1 (en) * 2002-03-30 2005-07-28 Thomson Licensing S.A. Method and apparatus for processing signals

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0577249A1 (fr) * 1992-07-02 1994-01-05 Ampex Systems Corporation Architecture déterminant la priorité du mélangeur de l'enchaîné
US5872565A (en) * 1996-11-26 1999-02-16 Play, Inc. Real-time video processing system
US20020118302A1 (en) * 2001-02-28 2002-08-29 Akira Iizuka Video mixer apparatus
US20050162559A1 (en) * 2002-03-30 2005-07-28 Thomson Licensing S.A. Method and apparatus for processing signals
US20040189878A1 (en) * 2003-03-25 2004-09-30 Yamaha Corporation Apparatus and program for setting video processing parameters

Also Published As

Publication number Publication date
FR2896652B1 (fr) 2008-10-17
FR2896652A1 (fr) 2007-07-27

Similar Documents

Publication Publication Date Title
EP0112761B1 (fr) Dispositif de création sonore
FR2686438A1 (fr) Circuiterie pour manipuler des flux de donnees.
CA2201917C (fr) Systeme de distribution audiovisuelle
FR2523332A1 (fr) Systeme et procede de creation d'images a palette synthetisee electroniquement
CH690154A5 (fr) Système pour tenir des téléconférences.
FR2492617A1 (fr) Systeme de traitement d'images video
FR2471106A1 (fr) Systeme et methode de traitement numerique d'images multiples
EP0833336A1 (fr) Procédé de sélection d'un enregistrement sur un système numérique de reproduction audiovisuel et système pour mise en oeuvre du procédé
FR2480545A1 (fr) Dispositif et procede pour imprimer un deplacement angulaire a une image de television
EP0206847A1 (fr) Dispositifs de calcul de transformées cosinus, dispositif de codage et dispositif de décodage d'images comportant de tels dispositifs de calcul
FR3047579A1 (fr)
FR2554948A1 (fr) Procedes et appareils de codage et d'affectation d'emplacements de memoire pour affichage d'images traitees numeriquement
FR2916866A1 (fr) Procede de creation et reproduction d'une image panoramique sonore, et appareil de reproduction d'une telle image
CA3102192A1 (fr) Procede mis en oeuvre par ordinateur pour la creation de contenus comprenant des images de synthese
FR2882212A1 (fr) Conversion d'une image fixe en une pluralite d'images de trame video
FR2565052A1 (fr) Systeme d'imagerie a ecran divise
WO2007083063A1 (fr) Table de mixage vidéo
EP0524842B1 (fr) Dispositif temps réel de présentation d'images de type télévision sur un écran de visualisation
EP0161175A1 (fr) Dispositif pour modifier l'aspect des points d'une image sur un écran d'une console de visualisation d'images graphiques
FR2477745A1 (fr) Dispositif d'affichage graphique en couleurs
FR2770735A1 (fr) Procede et appareil d'interface graphique d'utilisateur
FR2548504A1 (fr) Montage pour generer des systemes d'image de grandes dimensions
EP0011576A1 (fr) Synthétiseur polyphonique de signaux périodiques utilisant les techniques numériques
EP1249760A1 (fr) Dispositif de traitement de données par plusieurs processeurs
Magnusson IXI software: open controllers for open source audio software

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1), EPO FORM 1205A, SENT ON 30/10/08 .

122 Ep: pct application non-entry in european phase

Ref document number: 07718169

Country of ref document: EP

Kind code of ref document: A1