WO2007116207A1 - Encoding and decoding a signal - Google Patents

Encoding and decoding a signal Download PDF

Info

Publication number
WO2007116207A1
WO2007116207A1 PCT/GB2007/001247 GB2007001247W WO2007116207A1 WO 2007116207 A1 WO2007116207 A1 WO 2007116207A1 GB 2007001247 W GB2007001247 W GB 2007001247W WO 2007116207 A1 WO2007116207 A1 WO 2007116207A1
Authority
WO
WIPO (PCT)
Prior art keywords
signal
data
encoding
transformation
operating parameters
Prior art date
Application number
PCT/GB2007/001247
Other languages
French (fr)
Inventor
Philippe Marcel Henri Selve
Guillaume Pierre Planquette
Original Assignee
Beamups Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GB0607067A external-priority patent/GB2425013A/en
Application filed by Beamups Limited filed Critical Beamups Limited
Publication of WO2007116207A1 publication Critical patent/WO2007116207A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/99Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals involving fractal coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details

Definitions

  • the present invention relates to a method and apparatus for encoding and decoding a signal .
  • the storage and transmission of data requires sufficient permanent memory to store these data and sufficient bandwidth to transmit the data.
  • these finite resources become ever more stretched.
  • the situation is particularly acute when the data are audio or visual information.
  • Ever increasing generation and use of such data will further stretch the bandwidth requirements of data transmission services such as those that use fixed line telephony, mobile telephony, satellite, or other radio communication techniques.
  • the situation will only get worse with the introduction of high definition television (HDTV) services, and the increasing demands of users of mobile devices to view live motion video.
  • HDMI high definition television
  • an encoded signal is to be transmitted it is convenient to transmit the signal in a standard format that may be interpreted and decoded by a standard technique on a number of different platforms, such as a mobile phone or desktop computers, for instance.
  • This allows a single encoded signal to be transmitted or stored as a single, unique file that may be read by many types of output device.
  • Each of these output devices may reconstruct the signal to a different resolution or quality.
  • the resolution of the reconstructed signal is, therefore, only dependant .on the resources of the reconstructing device.
  • the process is effectively independent of any particular platform or environment.
  • an analogue camcorder as an example of a device for generating such data, a moving image is recorded electrically by focussing the images on a CCD sensor. The light intensity falling on each pixel is converted into an electrical charge. The electrical charge from each pixel is read out from the CCD forming an analogue signal which represents the image recorded on the CCD. This signal is processed and stored on a magnetic tape or other suitable recording medium. Digital camcorders work in a similar way except that the output signal is either converted into a digital signal or recorded as a digital signal from the CCD sensor itself. The colour component is achieved by either splitting the image into more than one filtered image and directing each of these components to a separate CCD, or applying a colour filter mask directly to a single CCD. It should be noted that the data are recorded "raw" on to the magnetic tape or other suitable recording medium and this represents a vast amount of information for each second of video.
  • Each colour component can be considered as a 1- Dimensional (1-D) signal.
  • the combined colour audio / video signal therefore, comprises several 1-D signals, which are typically three individual colour components and a set of audio channels (e.g. two channels for stereo sound) .
  • the output from a digital camcorder represents approximately 3.6 MBs "1 . Therefore, when storing or transmitting such data (on a DVD or other suitable medium, for instance) it is advantageous to compress the data using a ubiquitous compression technique that may be read my many different devices. Compression of data is often necessary where the encoded data is to be transmitted, via a wireless connection, e.g. to a personal computer.
  • the most popular video compression standard used is MPEG.
  • MPEG- 1 is suitable for storing about one hour of video on a CD- ROM, but this is at the expense of video quality which results from a reduced sample rate as well as other compression artefacts.
  • MPEG-2 supports interlace and High Definition TV (HDTV) whereas MPEG-I does not.
  • MPEG-2 has become very important because it has been chosen as the compression scheme for both DVB (Digital Video Broadcasting) and DVD (Digital Video Disk) .
  • MPEG-4 achieves further compression than MPEG-2 and is used in such applications as storing video from a digital camera onto solid state memory devices.
  • Known compression and encoding techniques rely on the signal to determine how to encode or compress it. For example, when a stream of video images changes abruptly the encoder may make certain assumptions about the stream of images, including that a new scene has started or that the camera was moving quickly at the time of capture. The encoder may be incorrect about these assumptions leading to errors in the encoded signal and subsequent reduced quality in the decoded signal or inefficient use of resources to encode the signal .
  • a method of encoding a signal comprising the steps of: receiving one or more operating parameters from a device used to generate the signal; encoding the signal to form a data output, wherein the data output contains the one or more operating parameters.
  • the encoding technique may be any presently known compression or encoding technique used to produce a data stream or output file, for instance, MPEG4-2 or MPEG4-10/H264.
  • the parameters themselves may be included in either a compressed or uncompressed form in the data stream for use in decoding the compressed signal.
  • the operating parameters may be added to the data stream or output file in a distinct manner or alternatively be incorporated into the data stream by the encoding process itself so that the data output comprises the encoded signal merged with the operating parameters.
  • the operating parameters are used to encode the signal. This allows the signal to be encoded using information relating to how the signal was captured and so improved the quality or reduce the necessary system resources for the encoded signal.
  • the encoding step may further comprise the steps of performing at least one transformation on the signal using at least one transformation function thereby generating at least one output parameter from the transformation function; associating a synchronisation signal with the at least one output parameter; and providing the data output comprising the synchronisation signal and the at least one output parameter.
  • a signal such as a 1-D signal
  • the same file may be used by many different devices to decode and regenerate the original signal (that may be a 1-D signal or a combination of several 1-D signals) to whatever level of precision or quality is required.
  • the output quality or the regenerated signal is only dependent on the processing or memory resources of the decoding device. Furthermore, the signal may be transmitted or stored as this unique file and in a form that requires much lower bandwidth or storage volume than would be required to transmit or store the original signal.
  • the signal may be modelled by one or more modelisation functions. These modelisation functions correspond to the transformation used to generate the output parameters during the encoding process. The same modelisation function may be used within the decoding process to regenerate the signal .
  • the output parameters are associated with a reference to the modelisation function used to generate the output parameter during the encoding process and to regenerate the signal during the decoding process. These references may be added to the data output .
  • the signal is an analogue signal and the method further comprises the step of: converting the analogue signal into a digital signal before performing the at least one transformation on the digital signal.
  • the signal may be processed in the digital domain and so enables the use of known digital processing techniques.
  • at least some or all of the processing may be performed using analogue techniques such as band pass filters, for instance.
  • This has advantages over digital techniques such as retaining all of the information present in the original signal, especially high frequency information.
  • Digital processing requires analogue to digital converters that require anti-aliasing filters that remove high frequency information from the original signal . Such anti-alias filtering is not required with analogue processing.
  • analogue processing is more efficient in terms of processing speed than digital processing.
  • a portion of the processing will be performed in the analogue domain and a portion will be performed in the digital domain. More preferably, digital processing techniques will be used to extract the modelisation function parameters.
  • the method further comprises the step of dividing the signal into discrete time segments before performing the at least one transformation and wherein the at least one transformation is performed on each discrete time segment of the signal.
  • This allows the continuous signal to be processed in discrete sections using one or more clock cycles of a digital processor.
  • one or more additional transformation functions may be generated and performed on the signal in response to at least one property of the signal.
  • additional transformation functions and associated modelisation functions may be retrieved or generated and used to encode the signal to improve the resulting decoded signal.
  • These additional modelisation functions and associated transformation functions may be stored within the database and retrieved or generated as and when required.
  • the method may further comprise the step of: adding the details of the additional transformation functions to the data output.
  • the output parameters are associated with the transformation function used to generate them, within the data output.
  • the details of the corresponding modelisation function may also be added to the data output.
  • only the details of the modelisation function required to regenerate the signal from the output parameters are added to the data output. This provides the decoder with the details of the modelisation function so that the decoder can regenerate the signal from the parameters contained within the data file. This is because the decoder database may not contain the modelisation function used.
  • the modelisation function may be retained, along with a reference to it, within the database of the decoder device for subsequent reference and use.
  • An existing modelisation function contained within the database of the decoder may be updated in response to the presence of instructions contained within the output data from the encoder device.
  • the output data may also contain instructions to delete particular modelisation functions from the database. These instructions may be in the form or flags or other data.
  • the encoder and decoder databases may be kept up to date with each other. They may also be maintained so as to contain the most suitable modelisation functions for the properties of the particular signal being encoded and decoded.
  • At least a portion of the data content of the data stream is compressed. This is in contrast to the prior art method of compressing the data content of the signal itself. This further reduces the storage volume and bandwidth required by the signal .
  • the compression technique used would be any suitable lossless compression technique.
  • the method may further comprise the step of: separating the signal into a set of separate signals each corresponding to a different frequency band before performing the at least one transformation on each of the separate signals.
  • This separation of signals may be performed with a filter bank where each filter isolates a particular frequency band from the original signal. This allows each signal to be processed in parallel by modelisation functions suitable for that particular frequency band.
  • the signal may be separated into separate signals based on other properties of the signal, such as amplitude or phase, using suitable filters.
  • the method further comprises the steps of: digitising a portion of the signal; and adding the digitised portion to the data output.
  • This step allows artefacts to be encoded as either raw or compressed data. It allows portions of the signal that cannot be encoded using any of the available modelisation functions or additional functions to be encoded and added to the data output directly in digital form.
  • the method further comprises the step of: storing a portion of the data output as referenced data in a memory buffer so that repetitive signal portions can be identified and duplicated in the data output.
  • This further optimises the output data by referencing repetitive signals and encoding a reference to the repeated portion of the signal instead of re-encoding the complete set of parameters extracted for that particular signal portion. This allows further efficiency improvements as fewer parameters need to be transmitted or stored.
  • the method may further comprise the step of applying a predetermined multiplication factor to a portion of the signal .
  • a predetermined multiplication factor When used with images or video this allows areas of the images or video perceived by a viewer to be more important to be encoded more precisely or more accurately. This allows system resources to be used more efficiently.
  • the multiplication factor may be applied to the output parameters following the transformation step.
  • the multiplication factor applied is dependent on the frequency of the portion of the signal . This may relate to the spatial frequency of signals used to form images or video frames .
  • the method may further comprise the step of applying a quantisation filter to the output parameter.
  • the range that the output parameters may fall within is divided into discrete windows. It is then determined which window each output parameter falls within and it is the window identifier that is added to the data stream rather than the exact value of the output parameter. Therefore, the precision of the encoding process may be selected by varying the size of the windows; smaller windows represent a higher precision. The precision may be varied dynamically and in response to properties present in the signal .
  • the quantisation filter is a logarithmic quantisation filter. This provides a greater dynamic range, whilst preserving encoding quality.
  • An alternative quantisation filter may be that of a linear division of the range.
  • the signal may be an image and the method may further comprise the step of generating an additional signal corresponding to an area outside of the image.
  • Border optimisation may be used to generate "missing" data required to more accurately encode portions of the signal corresponding to areas close to an image border. This may also be used when the operating parameters indicate that the zoom level is changing so that information from a border of an earlier image is used to fill any missing data in a later image .
  • the method may further comprise the step of sorting the at least one output parameter.
  • the data may be sorted by the type of transformation used to generate each parameter. This improves the efficiency of the process used to decode the signal .
  • a method of decoding a signal comprising the steps of: extracting from a data input one or more operating parameters from a device used to generate the signal; decoding the data input using the one or more operating parameters. This provides the decoder with information how the original signal was generated and so allows the decoder to generated a signal in a way that the subsequent viewer or listener may perceive an improved result.
  • the decoder may take this into account when reproducing the frames and show a more realistic video stream or may generate a zoomed set of images by increasingly cropping an earlier image.
  • the decoding step may further comprise the steps of : receiving a data input containing a synchronisation signal and at least one output parameter derived from at least one transformation performed on the signal during encoding; maintaining synchronisation of the decoding method using the synchronisation signal; and generating a signal by performing at least one function corresponding to the at least one transformation on the at least one output parameter.
  • the function corresponding to the at least one transformation is a modelisation function used to regenerate the signal from the output parameter or parameters contained within the data input.
  • This decoding method corresponds to the encoding method described above and has at least the same advantages as that method.
  • the method may further comprise the step of: performing a function contained within the data input on the at least one output parameter to generate the signal.
  • a transformation function is used to generate extracted parameters. This transformation function may be associated with the parameters in the data input. Alternatively, the corresponding modelisation function used to regenerate the signal within the decoder may be associated with parameters in the data input .
  • the method further comprises the step of at least partially decompressing the data contained within the data stream. This allows compressed data containing the output parameters to be decompressed and so an even smaller volume of data is required to describe the signal .
  • the method may further comprise the step of converting the generated signal into a digital signal .
  • This has the advantage of enabling the output signal to be used by digital equipment and processes.
  • the decode process may be conducted in the digital or analogue domains or a combination of both. Therefore, the output signal may be analogue or digital depending on its intended purpose.
  • the at least one transformation is stored as data describing the at least one transformation in a database and wherein the method further comprises the step of: retrieving data describing the at least one transformation from the database.
  • the use of a database within the encoding and decoding processes allow the transformation and modelisation functions to be stored in a convenient manner.
  • the method further comprises the step of maintaining synchronisation between the functions contained within an encoder database and the functions contained within a decoder database.
  • This allows the set of transformation and modelisation functions to be optimised in response to the content of the signal.
  • This also allows additional functions to be added to the databases within the encoder and decoder when the existing functions cannot be used to regenerate the signal to within predefined limits.
  • This also allows commonly used additional functions to be stored within the databases and so avoids the need to repeatedly store or transmit these additional functions within the data output file.
  • the data output may contain additional information for amending, adding or deleting the functions within the decoder database. These may be in the form of flags or similar data types.
  • the encoded signal is decoded with a precision that may be varied.
  • This has the advantage of decoding a single encoded file using different decoding devices.
  • the output signal is, therefore, independent of the data file and is only dependent on the resources of the decoding device.
  • the method may further comprise the step of applying a predetermined multiplication factor to a portion of the data input corresponding to a portion of the encoded signal .
  • a multiplication factor may be used to increase the precision of the encoded data for areas of an image or video signal that is perceived by a viewer to be more important.
  • a corresponding multiplication factor is used to restore each portion of the signal to its correct value.
  • the multiplication factor applied is dependent on the frequency of the encoded signal .
  • the multiplication factors used in the encoding and decoding steps match each other and are associated with a particular spatial frequency or range of frequencies of the signal when the signal corresponds to an image or video stream.
  • the data stream may include information relating to the particular multiplication factor used or this may be inferred by the particular frequency of the reconstructed signal.
  • the data input may contains one or more operating parameters of a device used to generate the signal . These operating parameters are used to improved the perceived quality of the resultant decoded signal.
  • the generating a signal step further comprises the step of analysing the one or more operating parameters in order to improve the quality of the generated signal.
  • apparatus for encoding a signal comprising: means for receiving one or more operating parameters from a device used to generate the signal; means for encoding the signal to form a data output, wherein the data output contains the one or more operating parameters .
  • the means for encoding the signal may- further comprise: a database containing details of at least one transformation; means for maintaining synchronisation; and a processor adapted to perform at least one transformation on the signal using the at least one transformation retrieved from the database thereby generating an output parameter and form a data output containing the synchronisation signal and the output parameter.
  • the means for maintaining synchronisation may be a clock signal or a synchronisation signal contained within the signal itself, such as an NTSC, PAL or SECAM synchronisation signal, for instance .
  • the apparatus may further comprise: means to compress at least some of the data output .
  • means to compress at least some of the data output This has the advantage of further reducing the storage and bandwidth requirements of the signal .
  • the signal is an analogue signal and the apparatus further comprises: an analogue to digital converter for converting the analogue signal into a digital signal .
  • analogue to digital converter for converting the analogue signal into a digital signal .
  • the apparatus may contain analogue processing means such as filters, for instance. Therefore, some or all of the processing may take place in the analogue or digital domains .
  • the apparatus further comprises memory to store discrete segments of the digital signal .
  • memory to store discrete segments of the digital signal . This enables the continuous signal to be split up and stored in discrete signal segments whilst they await processing.
  • apparatus for decoding a signal comprising: means for extracting from a data input one or more operating parameters from a device used to generate the signal; means for decoding the data input using the one or more operating parameters.
  • the means for decoding the signal may further comprise: a database containing details of at least one function; means for maintaining synchronisation; and a processor arranged to receive a data input containing a synchronisation signal and an output parameter produced from a transformation on the signal, retrieve the details of at least one function corresponding to the transformation on the signal from the database and generate a signal from the output parameter using the retrieved details of the at least one function.
  • This apparatus corresponds with the method for decoding the signal and, therefore, has the same advantages .
  • the apparatus may comprise means for decompressing at least a portion of the data contained in the data input. This allows the signal to be described by an even smaller volume of data.
  • the present invention also extends to a computer program comprising instructions that, when executed on a computer cause the computer to perform the method for encoding a signal, as described above.
  • the present invention also extends to a computer program comprising instructions that, when executed on a computer cause the computer to perform the method for decoding a signal, as described above .
  • the present invention also extends to a computer programmed to perform the method for encoding a signal, as described above.
  • the present invention also extends to a computer programmed to perform the method for decoding a signal, as described above.
  • the computer may be a DSP (Digital signal processor) or an FPGA (Field Programmable Gate Array) or an ASIC
  • the device is an optical still or video camera and the one or more operating parameters are selected from a group consisting of illumination, aperture, focus, zoom, zone of focus and camera ID.
  • the camera ID may be allocated to each device and uniquely identifies by a number or identifier, the particular device that generated the frame.
  • the camera ID may be inserted in each frame header.
  • the camera ID may alternatively be replaced by a device ID, which may refer to any device used to generate the signal and is not restricted to an optical or video camera. For instance, a device ID may identify a sound recorder or other signal generator.
  • This camera ID is not necessarily provided by the standard apparatus of current devices .
  • the camera or device ID may be implemented via a firmware modification in the DSP of the device.
  • the insertion in the frames header of the camera ID may be made optional via configuration.
  • the user may set their own camera or device ID via a user interface within the camera or device.
  • the camera or device ID may also be used for tracking of the row video output if inserted in to a video file.
  • This ID may be used for editing and changing scenes when compressing or encoding and transmitting (e.g. for identifying cameras during a football game or other event) .
  • the editing may be carried out during either or both the encoding or decoding of the signal.
  • the ID can be set automatically or manually during the editing process.
  • Each video input ID is allocated by the editing software to each video sequence and used as described above .
  • the hardware optical zoom may be combined with the artificial zoom parameter introduced during editing to form one unique combined parameter.
  • Figure 1 shows a flow diagram of a method of encoding an analogue signal from a CCD sensor and forming a data stream, including a database containing decomposition and transformation functions, to produce an encoded data stream;
  • Figure 2 shows a flow diagram of a method for decoding the data stream produced by the method of Figure 1 and for reconstructing an analogue signal
  • Figure 3 shows a flow diagram of the initial steps in processing the signal of encoded by the method of Figure 1 including converting the analogue signal into a digital signal and storing the digital signal in a set of memory banks ;
  • Figure 4 shows a schematic diagram of the generation of decomposition and transformation functions from properties of the analogue signal
  • Figure 5 shows a schematic diagram of the generation of the data stream of produced by the method of Figure 1 from the analogue signal
  • Figure 6 shows a schematic diagram of the reconstruction of an output signal from the data stream of produced by the method of Figure 1;
  • Figure 7 shows a schematic diagram of a method of encoding an analogue signal, including a filter bank
  • Figure 8 shows a flow diagram of a method of encoding an analogue signal from a CCD sensor and forming a data stream, including a perception filter step and a logarithmic adaptive quantisation step;
  • Figure 9 shows a flow diagram of a method for decoding the data stream produced by the method of Figure 8 and for reconstructing an analogue signal
  • Figure 10 shows a flow diagram of a method of encoding an analogue signal from a CCD sensor and forming a data stream, including optical hardware settings for compression, in accordance with a first embodiment of the present invention
  • Figure 11 shows a flow diagram of a method for decoding the data stream produced by the method shown in Figure 10 and for reconstructing an analogue signal .
  • a CCD sensor device in addition to the output data stream representing the image or video signal, produces parameters describing the state of the device when operating. These operating parameters may be output separately to the video or image signal or added to it separately. These operating parameters represent the state of the hardware and optics at the time the signal is generated, for instance, the zoom level, aperture setting, exposure level, focus level, zone of focus and camera type (e.g. HDTV or the number of CCDs present) or relate to the CCD itself such as sensitivity, gain, temperature and camera ID. Additional information may be added such as the time of capture, a scene or reel name or description and whether the location type such as indoors, outdoors, sunny, cloudy or underwater. When the signal is encoded to form a data stream or file some or all of these operating parameters are added and may also be used to encode the signal.
  • these operating parameters represent the state of the hardware and optics at the time the signal is generated, for instance, the zoom level, aperture setting, exposure level, focus level, zone of focus and camera type (e.g. HDTV or the number of
  • Additional parameters may also include angles to determine the direction of the camera when the camera is, for instance, on a stand.
  • the direction that the camera is pointing in may be uniquely determined by two angles
  • azimuth and elevation Any equivalent coordinate system can be used in place of the azimuth and elevation.
  • Angle of rotation of the camera around the axis of the camera (tilt) is also transmitted within the header.
  • the tilt parameter (or rotation) is used to determine the global motion compensation within the first stage of the motion estimation.
  • the azimuth and elevation parameters are used in two different parts of motion estimation.
  • azimuth and elevation parameters are compared with the values used with the latest frame transmitted from this camera or device. This determines if motion compensation from this previously transmitted frame can be performed or not. If a change in azimuth or elevation is out of a defined range (typically +- 20 degrees on each parameter) then motion compensation cannot be realised within acceptable limits and a decision may be taken to transmit a full new frame .
  • Figure 10 shows a flow chart describing a method for encoding a signal according to a preferred embodiment of the present invention.
  • the encoding process 10' ' shown in Figure 10 is an example of a particular encoding process of many that may be used. This particular encoding process is described in detail with reference to Figures 1 and 8 below.
  • Figure 10 shows how the operating parameters (also known as optical hardware settings throughout the description and claims) are added to a data stream as shown in the optical hardware settings for video encoding step 950.
  • This step is not limited to the optical settings only but may include any or all of the other operating parameters described above.
  • This step captures information obtained from the sensor, typically a CCD or other video camera device, and sends this information directly in the transmitter 120 before being added to the data stream 130. These parameters may be stored in a buffer or file and indexed with timing information.
  • the zoom information may be used for several purposes.
  • the zoom information may be used as the first stage in motion estimation. Knowing the rate of change of the zoom for the sensor optics allows data for a subsequent frame to be interpolated from an initial frame. This also may improve border optimisation mentioned below with reference to Figure 8.
  • the zoom parameter may be used to produce frames that incorporate compensation for the change in zoom level.
  • the zone of focus determines which part of a scene is most important to the viewer. When compressing or reconstructing these portions of a scene these zones may be allocated more bandwidth and computing power than areas outside of this zone. In this way system resources may be optimised. This can be applied on both video encoding or still picture encoding.
  • the aperture and illumination information may also be used as the first stage in motion estimation. When illumination differences between frames are determined subsequent frames may be reconstructed according to these changes and compensation for these changes may be applied.
  • the combined information of exposure and aperture may be used to determine the range of search for a motion estimation algorithm.
  • a high value for the aperture parameter combined with a small exposure reflects the capture of a quick motion subject.
  • the range of search for motion estimation is then large.
  • the camera ID can be use when compressing or encoding a new frame. If it comes from a different camera than the previous frame, and the camera ID is located within a database, the latest frame transmitted with this camera ID is used as an anchor frame for the motion estimation. Similarly, the decoder when receiving the camera ID will perform motion compensation using the latest frame received with this camera ID.
  • the camera ID may be transmitted at regular intervals such as when a frame is within a specified range of frames (ie 60 frames) .
  • the encoder may map the camera ID received from the device to its own camera ID device database. This may conserve system resources and save data when transmitting.
  • the addition of hardware settings to an encoded data stream is compatible with most of the known encoding and compressing techniques and algorithms used for video (for example, MPEG4-2, MPEG4-10/H264, etc.) and for still imaging (for example, JPEG, JPEG2000) . Furthermore, these improvements may be used with other types of data such as sound and music signals.
  • the hardware settings may be used within the encoding or compression step itself to improve the resulting encoded signal or may be added to the encoded signal in isolation, for instance in header parts of a file or other sections of the data stream.
  • the data stream may be decoded to reconstruct the original signal .
  • the data stream is decoded using a corresponding decoding process to the encoding process used to encode the signal.
  • the operating parameters included in the data stream are used during this decoding process to improve the reconstructed signal .
  • Figures 2 and 9 show suitable decoding methods that may be used and correspond to the encoding methods described below with reference to Figures 1 and 8.
  • Figure 11 shows a flow diagram describing a process of generating an analogue output signal 280 by decoding the data stream 130 generated by the encoding process 10 '' described with reference to Figure 10.
  • the decoding process 200' ' is similar to that shown in Figures 2 and 9 and described below and like features have been given the same reference numbers .
  • FIG 11 shows the step where operating parameters (also known as optical hardware settings throughout the description and claims) are extracted from the data stream 130. This occurs within the optical hardware settings for video decoding step 960. This step retrieves information captured by the sensor and incorporated into the data stream 130 by the optical hardware setting for video encoding step 950 step described with reference to Figure 10.
  • operating parameters also known as optical hardware settings throughout the description and claims
  • Figure 1 shows a flow chart describing a method for encoding a signal .
  • the encoding process starts when a sensor 20 generates an analogue input signal 30.
  • This analogue input signal 30 may comprise one or more 1-D signals.
  • Each 1-D signal may correspond to a particular colour signal, a composite signal or an audio channel, for instance. Where multiple 1-D signals are present, each 1-D is processed separately.
  • the following description relates to the processing of individual 1-D but it will be appreciated by the skilled person that it is possible to process multiple 1-D signals in parallel.
  • the sensor 20 may be a CCD or a microphone or other electronic device suitable for detecting a sound or image and generating an electronic signal from it.
  • the device generating the electronic signals may be a video camera, for example.
  • Such devices generate an analogue input signal 30 and this analogue input signal 30 is processed in a signal processor 35 to form a digital signal 40.
  • the analogue input signal 30 is filtered and digitised before being sampled in discrete time interval components. This process is shown by the group of components 45 enclosed by dashed lines and is described in further detail and with reference to Figure 3.
  • the digital signal 40 is passed to signal transform component 60.
  • Signal transfer component 60 also retrieves details from database 50.
  • Database 50 stores the details of the transformation and modelisation functions 140 that are to be used to encode the signal 40.
  • the signal transform component 60 performs all of the transformations contained in the database on the digital signal 40.
  • the encoding process 10 is continuous (although the analogue input signal 30 can be processed in discrete digital signal 40 components as described in Figure 3) and synchronisation of the process is maintained by the bit allocation component 70, which generates a synchronisation bit 75 for each discrete signal component provided to signal processor 35.
  • the bit allocation component 70 which generates a synchronisation bit 75 for each discrete signal component provided to signal processor 35.
  • the digital signal 40 is transformed using the transformation and decomposition functions 140 a continuous stream of output parameters are generated by the signal transform 60 component.
  • the quantisation component 80 quantises the signal provided by the signal transform component 60 thereby reducing the precision of the output parameters of that signal and further reducing the volume of data generated by the encoding process 10.
  • the quantisation process 80 produces quantised parameters 85 by removing a predetermined number of least significant data from the output parameters, i.e. introducing a predetermined rounding error to the output parameters .
  • the extraction of significant parameters component 90 determines the set of parameters that are to be extracted from the quantised parameters 85 to describe the analogue input signal 30 and form a set of extracted parameters 95.
  • the precision of the signal is determined by choice of these extracted parameters 95.
  • the external transform for exception handling component 100 retrieves or generates variable and adaptive functions 108 when the extracted parameters 95 cannot adequately describe the analogue input signal 30. These variable and adaptive functions 108 are added to the extracted parameters 95 to form signal 105. This component 100 is described in more detail below.
  • the extracted parameters and any added variable and adaptive function data 108 are compressed using known compression techniques familiar to the person skilled in the art .
  • This compression step is performed in the entropy coding component 110 to form compressed data 115.
  • the transmitter 120 formats the compressed data 115 into an output stream 130 that may be read by a suitable decoding method 200, as described below.
  • the synchronisation bit 75 described above is added to the output data stream 130 by the transmitter 120.
  • the synchronisation bit 75 is added to the header of the data stream 130.
  • the bit allocation component 70 runs in parallel to all of the processes from the quantisation component 80 to the entropy encoding step 110.
  • Figure 2 shows a flow diagram describing a process of generating an analogue output signal 280 by decoding the data stream 130 generated by the encoding process 10 described in Figure 1.
  • the decoding process relates to the decoding of a 1-D signal.
  • this decoding process 200 works as a reverse of the encoding process 10.
  • the decoding process 200 begins at the foot of Figure 2 where a receiver 210 receives the data stream 130.
  • the synchronisation bit, 75 contained within the header of the data stream 130, is used by the bit allocation component 240 to maintain synchronisation between the input data stream and the resultant analogue output signal 280.
  • the compressed data 215 within the data stream 130 is decompressed during the entropy decoding component 220 forming decompressed data 225.
  • variable and adaptive functions 108 contained with the input data stream 130 are removed by the external transform for exception handling component 230. This component is discussed below.
  • the signal transform process 250 reconstructs a digital signal 270 from the input parameters contained within the data stream 130.
  • Database 260 contains an identical set of transformation and decomposition functions 140 to that of the encoding database 50 as shown in Figure 1.
  • the signal transform process 250 uses the transformation and decomposition functions 140 retrieved from the database 260 to generate the digital signal 270 from the parameters contained with the input data stream 130.
  • each function 140 within the database 50 is performed on the digital signal 40.
  • the output digital signal 270 is generated by performing in reverse each of those same functions 140 on the input parameters contained within the data stream 130 to reconstruct the digital signal 270 corresponding to the original digital signal 40.
  • the output digital signal 270 may be optionally converted into an analogue output signal 280, corresponding to the original analogue signal 30, and directed to an output device. This may be the original CCD sensor 20 or another device using data in the digital domain 290.
  • Figure 3 shows the group of components 45 enclosed within the dashed line 45 of Figure 1. These components are concerned with the initial processing of the analogue input signal 30 forming each of the discrete digital signals 40.
  • the analogue signal 30 is processed by the signal processor 35 that has the following components.
  • the analogue signal 30 is filtered using an anti-aliasing filter 300.
  • the anti-aliasing filter 300 works according to the Nyquist criterion and in accordance with Shannon's sampling theorem. These criteria require the analogue to digital converter 320 to sample the analogue input signal 30 at at least twice the frequency of the maximum frequency component of the analogue signal 30. These criteria are well-known to the person skilled in the art of digital electronics and so require no further explanation here.
  • the signal 315 produced by the anti-aliasing filter 300 is acquired by the sample and hold device 310 before being converted into the digital domain by the analogue to digital converter 320.
  • a digital signal processing unit (DSP) 330 contains at least two memory banks 340 (0 and 1) .
  • the digital data representing the analogue signal are stored in discrete time interval components 325 within these memory banks 340.
  • the digital signal is interleaved and each discrete time interval component 325 is processed while the remaining components are stored in memory within the DSP 330.
  • a clock speed for the DSP 330 is chosen to be significantly faster than the sample rate of the digital signal. Therefore, there is the potential for several clock cycles to be used to process each discrete-time interval component 325 of the digital signal 40. In this way the analogue input signal 30 may be processed in real time with very little delay between the analogue input signal 30 entering the encoder 10 and the production of the output data stream 130.
  • the signal processor 35 may be a single discrete device. Alternatively, a single device may provide both the signal processor 35 and signal transform component 60.
  • the database 50 as shown in Figure 1 comprises all of the modelisation functions and transformations performed on the digital signal 40.
  • the results of these transformations 140 are quantised by the quantisation component 80 and are then extracted by the extraction of significant parameters component 90 forming a set of extracted parameters 95.
  • variable and adaptive functions 108 used by the external transform for exception handling component 100. These too may be stored within database 50 or in a separate database or file (not shown) .
  • the variable and adaptive functions 108 comprise the adaptive kernel of functions. Therefore, the overall kernel of functions 420 comprises both the core kernel and the adaptive kernel of functions.
  • the database 50 contains both the modelisation functions and their associated transformations used to generate the extracted parameters 95.
  • Figure 4 shows a schematic diagram describing the choice of properties of the kernel of functions. Each of these functions is described schematically by equation 420.
  • the composition of the kernel of functions 420 is determined from the properties of the audio visual material 400 producing the analogue input signal 30 that is to be encoded. When determining the actual composition of these functions 420, it is also necessary to consider the underlying device that will generate this audio video material 400.
  • the core kernel of functions may include many well known functions and their associated transformations. These may include wavelet transformations such as discrete wavelength transforms (DWT) , fractal decomposition functions, discrete cosine transforms (DCT) and other filter based functions. These functions are well-known in the field of data compression but will be used to extract the parameters 95 that will be used to recompose the signal during the decoder process and do not require any further discussion here.
  • wavelet transformations such as discrete wavelength transforms (DWT) , fractal decomposition functions, discrete cosine transforms (DCT) and other filter based functions.
  • variable and adaptive functions 108 are additional modelisation functions with associated transformation functions that may be dynamically generated or retrieved in response to the input signal 40. These variable and adaptive functions 108 may be stored within a separate database (shown in dashed lines) or only generated when required. Alternatively, these variable and adaptive functions 108 may be stored within database 50.
  • the signal processor 35 may be a neural network processor, which may determine whether or not to store particular variable and adaptive functions 108 based upon the properties of the analogue input signal 30 or the resources of the intended decoding processor or a combination of both.
  • variable and adaptive functions 108 are generated and retrieved by the external transform for exception handling component 100 shown in Figure 1. These variable and adaptive functions 108 are not continuously performed on the digital signal 40, but are only created when the core kernel functions produce an output which is outside predetermined limits. This may be determined by reconstructing the digital signal 270 from the core kernel functions (within the encoder 10) and comparing the reconstructed digital 270 signal with the original digital signal 40 provided through line 109 and calculating the difference between these two signals. If the error is outside predetermined limits, one or more variable and adaptive functions 108 are created. This quality checking procedure is performed within the external transform for exception handling component 100. Details concerning the variable and adaptive functions 108 are added to the data output stream 130 header so that they may be interpreted by the decoder process 200.
  • the quality checking procedure is repeated using the parameters generated by the variable and adaptive functions 108 in the same way as the quality checking procedure is performed for parameters generated from the core kernel functions 420. If the error is still outside of the predetermined limits, the portion of the digital signal 325 that failed to be parameterised within acceptable limits (an artefact) is added to the output data 130 as raw data or can be compressed by the usual means, as is known from the prior art (entropy encoding, etc.) .
  • Equation 1 represents a typical core kernel function as contained within databases 50 and 260:
  • Equation 1 Equation 2 represents a variable and adaptive function as added to the data output stream of the encoder 10 :
  • ⁇ J is a variable and adaptive function.
  • Equation 3 describes generation of core kernel functions 140 contained with the decoder function database 260.
  • the decoder functions must generate a reconstructed digital signal 270 from the input parameters. Where system resources are limited (such as in a mobile phone or other similar device) the decoder functions may work with a lower precision to the encoder functions and so generate a lower quality reconstructed signal compared with the original digital signal 40.
  • F quality of required reconstructed signal.
  • F id.
  • FIG. 5 shows a schematic diagram describing the deconstruction of a signal (St) .
  • the mapper 500 carries out the signal transformation by using each core kernel function 420 from the database as well as any required variable and adaptive functions 108.
  • the data output is represented by Equation 4 :
  • L 2Z. is a vector describing the extracted parameters 95 extracted from the core kernel of functions 420 as well as any variable and adaptive functions 108 used.
  • J v represents the variable and adaptive functions 108 that may have been used.
  • £ represents additional parameters included within the data output 130. These parameters may include an indication of the presence of a variable and adaptive function 130 and any flags or parameters describing the original audio/video signal such as the original format (e.g. PAL, NTSC, etc) .
  • Figure 6 shows a schematic diagram describing the reconstruction of the signal from the data output of the mapper 500.
  • the data output (now data input) is reconstructed within the builder module 600 which provides a reconstructed data output as described by Equation 5 :
  • the builder module 600 uses the core kernel functions 420 as well as the variable and adaptive functions 108 (if present) to reconstruct the digital signal 270.
  • the quality of the reconstructed digital 270 signal does not rely on the volume of data contained within the bit stream 130 (output or input parameters) but is instead determined by the functions 140 contained within the encoding and decoding databases and any variable and adaptive functions 108 used. In general, these functions are not transmitted within the bit stream (except for occasional variable and adaptive functions 108 that are transmitted under exceptional circumstances) . Synchronisation between the variable and adaptive functions stored in the encoder 10 and decoder 200 is achieved by incorporating instructions to update, amend or delete the variable and adaptive functions within the header of the data stream 130 forming the data output from the mapper 500. Not every variable and adaptive function 108 is retained in the encoder and decoder.
  • the encoder system may be limited in memory or processing power, and so it may be more efficient to generate these new functions on an ad hoc basis as and when required.
  • the encoder will therefore assign a priority co-efficient to each new function 108 with the highest priority functions kept in preference over the lower priority functions.
  • These priority co-efficients are also transmitted in the header of the data steam 130 and used by the decoder system 200 in determining whether or not to retain the new functions 108 within the decoder 200.
  • the generation and updating of the adaptive and variable functions 108 may be performed by a neural network or other suitable processor.
  • the neural network will use the digital signal 40 to determine which, if any function to retrieve or generate and will also use a set of criteria describing the required output quality (e.g. HDTV or mobile phone displays) .
  • the input analogue signal 30 may be any signal describing data but in particular, this technique is specifically suitable for video and/or audio signals.
  • the variable and adaptive functions 108 may be generated by the neural network or suitable processor from a set of function libraries separate to the encoding database 50. A further efficiency saving in processing power and data volume may be made by buffering a certain volume of the most recent data 130 in memory. This allows repetitive signal portions 325 to be identified and referenced during the encoding process.
  • the encoder will add to the output data 130 a reference to the set of parameters 95 previously buffered.
  • the decoding process will also buffer the input data 130 in memory and will regenerate the repeated signal portion 325 each time a reference to a set of parameters 95 is encountered in the data 130. This results in improved throughput during the decoding process as modelisation functions will not be required for the repetitive signal portions 325.
  • the buffered output signal 270 will be retrieved instead.
  • NTSC television signals
  • PAL PAL
  • SECAM SECAM
  • Such television signals contain non-video or audio components. Therefore, additional processing is required during both the encoding 10 and decoding 200 processes to process the non-video or audio components.
  • An NTSC signal contains a set of signals before the active video signal is encountered.
  • This set of signals include a blank level, a vertical sync pulse, a horizontal sync pulse, colour burst information and may also contain teletext information.
  • These signals and their use are well known to the person skilled in the art and do not require any further description.
  • Other non-video or audio signals may be present and these signals may be processed in a similar way. As these non-video or audio signals have a well defined structure and content it is possible to reconstruct them from a minimum amount of information as their structure and location within the signal is set as a standard known format. Therefore, these signals are removed from the analogue input signal 30 within a pre-processing stage (prior to the encoding process 10) . The properties of these removed signals are added to the data output 130 as a simple flag or reference parameter. In the case of teletext, the data are simply added as raw or compressed text.
  • FIG. 7 shows a schematic diagram of an analogue input signal 30 such as one of the 1-D signals previously- described.
  • the analogue input signal 30 is separated into a set 720 of individual analogue signals 740 by a filter bank 710. Each individual signal 740 corresponds to a different frequency range of the original analogue input signal 30.
  • Each individual signal 740 is processed, as described above with reference to Figure 1, resulting in a set 730 of individual 130 data containing header and output data for each individual signal 740 along with an additional item of data corresponding to the frequency band of the individual signal 740. All of the output data 130 are combined in a single file (not shown) . On reconstruction, the data 130 corresponding to each separate frequency band is reconstructed separately by the reconstruction process described above with reference to Figure 2. The reconstructed signals are then combined to form a single analogue output signal 280, as shown on Figure 2.
  • the effect of the filter bank 710 is to provide a level of analogue processing before any parameters are extracted. This also allows a certain amount of parallel processing to take place and so improve throughput.
  • This parallel processing may be in addition to parallel processing or multiple 1-D signals.
  • the extraction process may be either in the analogue or digital domain.
  • Figure 8 shows a flow chart describing a method for encoding a signal.
  • the encoding process 10' is similar to that shown in Figure 1 and like features have been given the same reference numbers .
  • the encoding process 10 ' additionally contains a perception filter 800 following the signal transform 60 step, a sorting of parameters 810 step following the extraction of significant parameters 90 step and border optimisation 55 performed before the signal transform 60 step. Additionally, the quantisation 80 step of Figure 1 is replaced by a logarithmic quantisation step 80'.
  • the perception filter 800 uses a set of heuristically determined coefficients, which are independent of the content to be encoded. Each coefficient relates to a specific frequency (or range of frequencies) that may be present within the signal and is used as a multiplication factor to increase or decrease the encoding effort used for parts of the signal having the corresponding frequency. For instance, where the signal is a video signal containing image information certain parts of the image (having particular spatial frequencies) are perceived by a viewer as being more noticeable or important.
  • the perception filter allows the more important parts of the signal to be more fully encoded than those parts of the signal that are perceived to be less important. In other words, parts of the signal are encoded differently using varying levels of resources depending on the frequency of those portions of the signal .
  • the perception filter step 800 may be applied directly to the signal or alternatively, to the output parameters generated after the signal is transformed.
  • the sorting of parameters 810 step groups together parameters formed from different types of transformations. By grouping similar parameters together they may be compressed by the entropy coding 110 step more efficiently. Exceptions are directed to the external transform for exception handing component 100.
  • Logarithmic quantisation is used in step 80' instead of linear quantisation as described with relation to Figure 1.
  • Border optimisation 55 is used to generate data required to perform reliable encoding. Typically, this occurs near to the border of an image frame, where data outside of the border are required to encode the signal . These "missing" data may be generated by using symmetry, where missing data are generated by interpolation from data contained within the border. Motion estimation may also be used. For instance, where a series of frames is panned from side to side or zoomed in, data from a previous frame may be used to generate new data and so extend the image beyond its border.
  • Figure 9 shows a flow diagram describing a process of generating an analogue output signal 280 by decoding the data stream 130 generated by the encoding process 10' described in Figure 8.
  • the decoding process 200' is similar to that shown in Figure 2 and like features have been given the same reference numbers .
  • Figure 9 additionally includes an inverse perception filter 900, which contains a corresponding set of coefficients to the perception filter 800 used to encode the signal and described with reference to Figure 8.
  • the coefficients are used as multiplication factors to return each frequency component of the signal to that of its original level, i.e, before the perception filter 800 applied any scaling factors.
  • the inverse perception filter step 900 may be applied directly to the parameters or to the reconstructed signal.
  • the database 50 may contain additional transformation or modelisation functions that are not performed on each segment of the digital signal 40.
  • the adaptive and variable functions 108 may also be stored within database 50. Other types of transformation and modelisation functions may be performed during the encoding
  • the header of the data stream 130 may contain additional information regarding the analogue input signal 30 such as the date and time of the acquisition of the signal, the type of equipment used and the level of quantisation used.
  • the discrete segments of the digital signal 325 may be stored in any number of memory banks 340 and these memory banks 340 may be located outside or inside the DSP 330. Any type of data may be encoded and decoded by this technique such as data stored in a database or within a computer system, for instance.
  • the entropy coding 120 and decoding 220 processes may use any well know lossless compression techniques such as Huffman, simple run- line encoding and other arithmetic techniques.
  • the synchronisation signal may be a clock signal generated within the analogue or digital processor or may be a synchronisation signal contained within the signal itself, such as an NTSC, PAL or SECAM synchronisation signal, for instance. In this case it may not be necessary to add a synchronisation signal as this may be present already. Alternatively, a synchronisation signal may be completely absent provided internal synchronisation or timing is kept when encoding or decoding the signal .
  • logarithmic adaptive quantisation, perception and inverse perception filters and optical hardware setting for video encoding and decoding described with reference to Figures 8 to 11 may be implemented together or separately within systems or methods to encode and decode signals.
  • the operation parameters may themselves be compressed before being added to the data stream or may be added in an uncompressed format .
  • the output and input data streams may be continuous signals or files or sets of files.
  • the signal may represent optical images, video, sound or music data.

Abstract

Method and apparatus for encoding a signal comprising receiving one or more operating parameters from a device used to generate the signal. Encoding the signal to form a data output. The data output contains the one or more operating parameters. There is also provided a method and apparatus for decoding a signal comprising extracting from a data input one or more operating parameters from a device used to generate the signal. Decoding the data input using the one or more operating parameters.

Description

- I -
ENCODING AND DECODING A SIGNAL
Background of the Invention
The present invention relates to a method and apparatus for encoding and decoding a signal .
The storage and transmission of data requires sufficient permanent memory to store these data and sufficient bandwidth to transmit the data. As data volumes increase, these finite resources become ever more stretched. The situation is particularly acute when the data are audio or visual information. Ever increasing generation and use of such data will further stretch the bandwidth requirements of data transmission services such as those that use fixed line telephony, mobile telephony, satellite, or other radio communication techniques. The situation will only get worse with the introduction of high definition television (HDTV) services, and the increasing demands of users of mobile devices to view live motion video.
Where an encoded signal is to be transmitted it is convenient to transmit the signal in a standard format that may be interpreted and decoded by a standard technique on a number of different platforms, such as a mobile phone or desktop computers, for instance. This allows a single encoded signal to be transmitted or stored as a single, unique file that may be read by many types of output device. Each of these output devices may reconstruct the signal to a different resolution or quality. The resolution of the reconstructed signal is, therefore, only dependant .on the resources of the reconstructing device. Furthermore, the process is effectively independent of any particular platform or environment.
Taking an analogue camcorder as an example of a device for generating such data, a moving image is recorded electrically by focussing the images on a CCD sensor. The light intensity falling on each pixel is converted into an electrical charge. The electrical charge from each pixel is read out from the CCD forming an analogue signal which represents the image recorded on the CCD. This signal is processed and stored on a magnetic tape or other suitable recording medium. Digital camcorders work in a similar way except that the output signal is either converted into a digital signal or recorded as a digital signal from the CCD sensor itself. The colour component is achieved by either splitting the image into more than one filtered image and directing each of these components to a separate CCD, or applying a colour filter mask directly to a single CCD. It should be noted that the data are recorded "raw" on to the magnetic tape or other suitable recording medium and this represents a vast amount of information for each second of video.
Each colour component can be considered as a 1- Dimensional (1-D) signal. The combined colour audio / video signal, therefore, comprises several 1-D signals, which are typically three individual colour components and a set of audio channels (e.g. two channels for stereo sound) .
Typically, the output from a digital camcorder represents approximately 3.6 MBs"1. Therefore, when storing or transmitting such data (on a DVD or other suitable medium, for instance) it is advantageous to compress the data using a ubiquitous compression technique that may be read my many different devices. Compression of data is often necessary where the encoded data is to be transmitted, via a wireless connection, e.g. to a personal computer. The most popular video compression standard used is MPEG. MPEG- 1 is suitable for storing about one hour of video on a CD- ROM, but this is at the expense of video quality which results from a reduced sample rate as well as other compression artefacts.
The subsequent MPEG-2 standard is considerably broader in scope and of wider appeal. For example, MPEG-2 supports interlace and High Definition TV (HDTV) whereas MPEG-I does not. MPEG-2 has become very important because it has been chosen as the compression scheme for both DVB (Digital Video Broadcasting) and DVD (Digital Video Disk) .
MPEG-4 achieves further compression than MPEG-2 and is used in such applications as storing video from a digital camera onto solid state memory devices.
Certain compression techniques are lossless and therefore result in no loss of signal quality. However, compression efficiency is usually quite low for these techniques. Therefore, lossy compression techniques are usually chosen. All lossy compression techniques necessitate a trade-off between output quality and data volume. Furthermore, it is not possible to obtain a higher resolution from the uncompressed signal than was encoded within the compressed data. It is therefore desirable to provide a method and apparatus for encoding and decoding a 1-D signal or several 1-D signals making up a composite signal in order to reduce storage volume and bandwidth requirements. It is also desirable that the quality of the decoded signal, with respect to the original signal, is largely independent of the storage volume and bandwidth requirements of the encoded signal .
Known compression and encoding techniques rely on the signal to determine how to encode or compress it. For example, when a stream of video images changes abruptly the encoder may make certain assumptions about the stream of images, including that a new scene has started or that the camera was moving quickly at the time of capture. The encoder may be incorrect about these assumptions leading to errors in the encoded signal and subsequent reduced quality in the decoded signal or inefficient use of resources to encode the signal .
Therefore, it is further desirable to provide a method and apparatus for encoding and decoding a signal to enable a viewer of the decoded signal to perceive a higher quality result without increasing the bandwidth or system resources necessary to transmit or store the signal .
Summary of the Invention
In a first aspect of the present invention there is provided a method of encoding a signal comprising the steps of: receiving one or more operating parameters from a device used to generate the signal; encoding the signal to form a data output, wherein the data output contains the one or more operating parameters. The encoding technique may be any presently known compression or encoding technique used to produce a data stream or output file, for instance, MPEG4-2 or MPEG4-10/H264. When the compression or encoding takes place information relating to the operation or setup of the device is used to improve the quality or accuracy of the resultant compressed signal . The parameters themselves may be included in either a compressed or uncompressed form in the data stream for use in decoding the compressed signal. The operating parameters may be added to the data stream or output file in a distinct manner or alternatively be incorporated into the data stream by the encoding process itself so that the data output comprises the encoded signal merged with the operating parameters.
Optionally, the operating parameters are used to encode the signal. This allows the signal to be encoded using information relating to how the signal was captured and so improved the quality or reduce the necessary system resources for the encoded signal.
Optionally, the encoding step may further comprise the steps of performing at least one transformation on the signal using at least one transformation function thereby generating at least one output parameter from the transformation function; associating a synchronisation signal with the at least one output parameter; and providing the data output comprising the synchronisation signal and the at least one output parameter. This has the advantage that a signal, such as a 1-D signal, may be encoded into a unique file format that may be transmitted or stored in a device independent form. The same file may be used by many different devices to decode and regenerate the original signal (that may be a 1-D signal or a combination of several 1-D signals) to whatever level of precision or quality is required. This has the advantage that the output quality or the regenerated signal is only dependent on the processing or memory resources of the decoding device. Furthermore, the signal may be transmitted or stored as this unique file and in a form that requires much lower bandwidth or storage volume than would be required to transmit or store the original signal.
The signal may be modelled by one or more modelisation functions. These modelisation functions correspond to the transformation used to generate the output parameters during the encoding process. The same modelisation function may be used within the decoding process to regenerate the signal .
Optionally, the output parameters are associated with a reference to the modelisation function used to generate the output parameter during the encoding process and to regenerate the signal during the decoding process. These references may be added to the data output .
Optionally, the signal is an analogue signal and the method further comprises the step of: converting the analogue signal into a digital signal before performing the at least one transformation on the digital signal. This has the advantage that the signal may be processed in the digital domain and so enables the use of known digital processing techniques. Optionally, at least some or all of the processing may be performed using analogue techniques such as band pass filters, for instance. This has advantages over digital techniques such as retaining all of the information present in the original signal, especially high frequency information. Digital processing requires analogue to digital converters that require anti-aliasing filters that remove high frequency information from the original signal . Such anti-alias filtering is not required with analogue processing. Furthermore, analogue processing is more efficient in terms of processing speed than digital processing.
Preferably, a portion of the processing will be performed in the analogue domain and a portion will be performed in the digital domain. More preferably, digital processing techniques will be used to extract the modelisation function parameters.
Preferably, the method further comprises the step of dividing the signal into discrete time segments before performing the at least one transformation and wherein the at least one transformation is performed on each discrete time segment of the signal. This allows the continuous signal to be processed in discrete sections using one or more clock cycles of a digital processor.
Conveniently, one or more additional transformation functions may be generated and performed on the signal in response to at least one property of the signal. The advantage of this is that where the decoded signal does not match the original signal to within specified limits (a difference operation is performed on the original and decoded signals) further additional transformation functions and associated modelisation functions may be retrieved or generated and used to encode the signal to improve the resulting decoded signal. These additional modelisation functions and associated transformation functions may be stored within the database and retrieved or generated as and when required.
Optionally, the method may further comprise the step of: adding the details of the additional transformation functions to the data output. The output parameters are associated with the transformation function used to generate them, within the data output. The details of the corresponding modelisation function may also be added to the data output. Alternatively, only the details of the modelisation function required to regenerate the signal from the output parameters are added to the data output. This provides the decoder with the details of the modelisation function so that the decoder can regenerate the signal from the parameters contained within the data file. This is because the decoder database may not contain the modelisation function used.
Optionally, the modelisation function may be retained, along with a reference to it, within the database of the decoder device for subsequent reference and use. An existing modelisation function contained within the database of the decoder may be updated in response to the presence of instructions contained within the output data from the encoder device. The output data may also contain instructions to delete particular modelisation functions from the database. These instructions may be in the form or flags or other data. In this way, the encoder and decoder databases may be kept up to date with each other. They may also be maintained so as to contain the most suitable modelisation functions for the properties of the particular signal being encoded and decoded.
Preferably, at least a portion of the data content of the data stream is compressed. This is in contrast to the prior art method of compressing the data content of the signal itself. This further reduces the storage volume and bandwidth required by the signal . The compression technique used would be any suitable lossless compression technique.
Optionally, the method may further comprise the step of: separating the signal into a set of separate signals each corresponding to a different frequency band before performing the at least one transformation on each of the separate signals. This separation of signals may be performed with a filter bank where each filter isolates a particular frequency band from the original signal. This allows each signal to be processed in parallel by modelisation functions suitable for that particular frequency band. The signal may be separated into separate signals based on other properties of the signal, such as amplitude or phase, using suitable filters.
Preferably, the method further comprises the steps of: digitising a portion of the signal; and adding the digitised portion to the data output. This step allows artefacts to be encoded as either raw or compressed data. It allows portions of the signal that cannot be encoded using any of the available modelisation functions or additional functions to be encoded and added to the data output directly in digital form.
Optionally, the method further comprises the step of: storing a portion of the data output as referenced data in a memory buffer so that repetitive signal portions can be identified and duplicated in the data output. This further optimises the output data by referencing repetitive signals and encoding a reference to the repeated portion of the signal instead of re-encoding the complete set of parameters extracted for that particular signal portion. This allows further efficiency improvements as fewer parameters need to be transmitted or stored.
Optionally, the method may further comprise the step of applying a predetermined multiplication factor to a portion of the signal . When used with images or video this allows areas of the images or video perceived by a viewer to be more important to be encoded more precisely or more accurately. This allows system resources to be used more efficiently. Alternatively, the multiplication factor may be applied to the output parameters following the transformation step.
Preferably, the multiplication factor applied is dependent on the frequency of the portion of the signal . This may relate to the spatial frequency of signals used to form images or video frames .
Optionally, the method may further comprise the step of applying a quantisation filter to the output parameter. The range that the output parameters may fall within is divided into discrete windows. It is then determined which window each output parameter falls within and it is the window identifier that is added to the data stream rather than the exact value of the output parameter. Therefore, the precision of the encoding process may be selected by varying the size of the windows; smaller windows represent a higher precision. The precision may be varied dynamically and in response to properties present in the signal .
Preferably, the quantisation filter is a logarithmic quantisation filter. This provides a greater dynamic range, whilst preserving encoding quality. An alternative quantisation filter may be that of a linear division of the range.
Optionally, the signal may be an image and the method may further comprise the step of generating an additional signal corresponding to an area outside of the image. Border optimisation may be used to generate "missing" data required to more accurately encode portions of the signal corresponding to areas close to an image border. This may also be used when the operating parameters indicate that the zoom level is changing so that information from a border of an earlier image is used to fill any missing data in a later image .
Optionally, the method may further comprise the step of sorting the at least one output parameter. The data may be sorted by the type of transformation used to generate each parameter. This improves the efficiency of the process used to decode the signal . In a second aspect of the present invention there is provided a method of decoding a signal comprising the steps of: extracting from a data input one or more operating parameters from a device used to generate the signal; decoding the data input using the one or more operating parameters. This provides the decoder with information how the original signal was generated and so allows the decoder to generated a signal in a way that the subsequent viewer or listener may perceive an improved result. For instance, if a portion of the data input relates to a section of a video signal where the zoom changed rapidly, the decoder may take this into account when reproducing the frames and show a more realistic video stream or may generate a zoomed set of images by increasingly cropping an earlier image.
Optionally, the decoding step may further comprise the steps of : receiving a data input containing a synchronisation signal and at least one output parameter derived from at least one transformation performed on the signal during encoding; maintaining synchronisation of the decoding method using the synchronisation signal; and generating a signal by performing at least one function corresponding to the at least one transformation on the at least one output parameter. The function corresponding to the at least one transformation is a modelisation function used to regenerate the signal from the output parameter or parameters contained within the data input. This decoding method corresponds to the encoding method described above and has at least the same advantages as that method. Optionally, the method may further comprise the step of: performing a function contained within the data input on the at least one output parameter to generate the signal. This allows additional modelisation functions to be sent with the data stream when the decoded signal does not match the encoded signal within predetermined limits (as discussed above) . A transformation function is used to generate extracted parameters. This transformation function may be associated with the parameters in the data input. Alternatively, the corresponding modelisation function used to regenerate the signal within the decoder may be associated with parameters in the data input .
Advantageously, the method further comprises the step of at least partially decompressing the data contained within the data stream. This allows compressed data containing the output parameters to be decompressed and so an even smaller volume of data is required to describe the signal .
Preferably, the method may further comprise the step of converting the generated signal into a digital signal . This has the advantage of enabling the output signal to be used by digital equipment and processes. The decode process may be conducted in the digital or analogue domains or a combination of both. Therefore, the output signal may be analogue or digital depending on its intended purpose.
Preferably, the at least one transformation is stored as data describing the at least one transformation in a database and wherein the method further comprises the step of: retrieving data describing the at least one transformation from the database.
Advantageously, the use of a database within the encoding and decoding processes allow the transformation and modelisation functions to be stored in a convenient manner.
Preferably, the method further comprises the step of maintaining synchronisation between the functions contained within an encoder database and the functions contained within a decoder database. This allows the set of transformation and modelisation functions to be optimised in response to the content of the signal. This also allows additional functions to be added to the databases within the encoder and decoder when the existing functions cannot be used to regenerate the signal to within predefined limits. This also allows commonly used additional functions to be stored within the databases and so avoids the need to repeatedly store or transmit these additional functions within the data output file. The data output may contain additional information for amending, adding or deleting the functions within the decoder database. These may be in the form of flags or similar data types.
Preferably, the encoded signal is decoded with a precision that may be varied. This has the advantage of decoding a single encoded file using different decoding devices. The output signal is, therefore, independent of the data file and is only dependent on the resources of the decoding device. Optionally, the method may further comprise the step of applying a predetermined multiplication factor to a portion of the data input corresponding to a portion of the encoded signal . When encoding the signal a multiplication factor may be used to increase the precision of the encoded data for areas of an image or video signal that is perceived by a viewer to be more important. A corresponding multiplication factor is used to restore each portion of the signal to its correct value.
Preferably, the multiplication factor applied is dependent on the frequency of the encoded signal . The multiplication factors used in the encoding and decoding steps match each other and are associated with a particular spatial frequency or range of frequencies of the signal when the signal corresponds to an image or video stream. The data stream may include information relating to the particular multiplication factor used or this may be inferred by the particular frequency of the reconstructed signal.
Optionally, the data input may contains one or more operating parameters of a device used to generate the signal . These operating parameters are used to improved the perceived quality of the resultant decoded signal.
Preferably, the generating a signal step further comprises the step of analysing the one or more operating parameters in order to improve the quality of the generated signal. According to a third aspect of the present invention there is provided apparatus for encoding a signal comprising: means for receiving one or more operating parameters from a device used to generate the signal; means for encoding the signal to form a data output, wherein the data output contains the one or more operating parameters .
Optionally, the means for encoding the signal may- further comprise: a database containing details of at least one transformation; means for maintaining synchronisation; and a processor adapted to perform at least one transformation on the signal using the at least one transformation retrieved from the database thereby generating an output parameter and form a data output containing the synchronisation signal and the output parameter. This apparatus corresponds to the encoding method and therefore has the same advantages . The means for maintaining synchronisation may be a clock signal or a synchronisation signal contained within the signal itself, such as an NTSC, PAL or SECAM synchronisation signal, for instance .
Preferably, the apparatus may further comprise: means to compress at least some of the data output . This has the advantage of further reducing the storage and bandwidth requirements of the signal .
Advantageously, the signal is an analogue signal and the apparatus further comprises: an analogue to digital converter for converting the analogue signal into a digital signal . This has the advantage of working in the digital domain and so utilising digital signal processing techniques. The apparatus may contain analogue processing means such as filters, for instance. Therefore, some or all of the processing may take place in the analogue or digital domains .
Preferably, the apparatus further comprises memory to store discrete segments of the digital signal . This enables the continuous signal to be split up and stored in discrete signal segments whilst they await processing.
According to a fourth aspect of the present invention there is provided apparatus for decoding a signal comprising: means for extracting from a data input one or more operating parameters from a device used to generate the signal; means for decoding the data input using the one or more operating parameters.
Optionally, the means for decoding the signal may further comprise: a database containing details of at least one function; means for maintaining synchronisation; and a processor arranged to receive a data input containing a synchronisation signal and an output parameter produced from a transformation on the signal, retrieve the details of at least one function corresponding to the transformation on the signal from the database and generate a signal from the output parameter using the retrieved details of the at least one function. This apparatus corresponds with the method for decoding the signal and, therefore, has the same advantages .
Advantageously, the apparatus may comprise means for decompressing at least a portion of the data contained in the data input. This allows the signal to be described by an even smaller volume of data.
The present invention also extends to a computer program comprising instructions that, when executed on a computer cause the computer to perform the method for encoding a signal, as described above. The present invention also extends to a computer program comprising instructions that, when executed on a computer cause the computer to perform the method for decoding a signal, as described above .
The present invention also extends to a computer programmed to perform the method for encoding a signal, as described above. The present invention also extends to a computer programmed to perform the method for decoding a signal, as described above.
The computer may be a DSP (Digital signal processor) or an FPGA (Field Programmable Gate Array) or an ASIC
(Application Specific Integrated Circuit) design.
Advantageously, in any of the methods or apparatus described above the device is an optical still or video camera and the one or more operating parameters are selected from a group consisting of illumination, aperture, focus, zoom, zone of focus and camera ID.
The camera ID may be allocated to each device and uniquely identifies by a number or identifier, the particular device that generated the frame. The camera ID may be inserted in each frame header. The camera ID may alternatively be replaced by a device ID, which may refer to any device used to generate the signal and is not restricted to an optical or video camera. For instance, a device ID may identify a sound recorder or other signal generator.
This camera ID is not necessarily provided by the standard apparatus of current devices . The camera or device ID may be implemented via a firmware modification in the DSP of the device. The insertion in the frames header of the camera ID may be made optional via configuration.
Optionally, the user may set their own camera or device ID via a user interface within the camera or device.
The camera or device ID may also be used for tracking of the row video output if inserted in to a video file.
This ID may be used for editing and changing scenes when compressing or encoding and transmitting (e.g. for identifying cameras during a football game or other event) . The editing may be carried out during either or both the encoding or decoding of the signal.
If no ID is provided by the camera or device, the ID can be set automatically or manually during the editing process. Each video input ID is allocated by the editing software to each video sequence and used as described above .
This may also be used in applications in order to know the domain of registration of an image. At the editing stage, further parameters may be issued, which relate to artificial effects and may be included in the data stream (ie: artificial zoom, light change, rotation of the frame, stretching) and used in the same way as the hardware optical settings during the encoding stage.
These parameters may be added separately or alternatively, combined with the optical hardware parameters. For example, the hardware optical zoom may be combined with the artificial zoom parameter introduced during editing to form one unique combined parameter.
Brief Description of the Figures
The present invention may be put into practice in a number of ways and a preferred embodiment will now be described by way of example only, and with reference to the accompanying drawings, in which:
Figure 1 shows a flow diagram of a method of encoding an analogue signal from a CCD sensor and forming a data stream, including a database containing decomposition and transformation functions, to produce an encoded data stream;
Figure 2 shows a flow diagram of a method for decoding the data stream produced by the method of Figure 1 and for reconstructing an analogue signal;
Figure 3 shows a flow diagram of the initial steps in processing the signal of encoded by the method of Figure 1 including converting the analogue signal into a digital signal and storing the digital signal in a set of memory banks ;
Figure 4 shows a schematic diagram of the generation of decomposition and transformation functions from properties of the analogue signal;
Figure 5 shows a schematic diagram of the generation of the data stream of produced by the method of Figure 1 from the analogue signal;
Figure 6 shows a schematic diagram of the reconstruction of an output signal from the data stream of produced by the method of Figure 1;
Figure 7 shows a schematic diagram of a method of encoding an analogue signal, including a filter bank;
Figure 8 shows a flow diagram of a method of encoding an analogue signal from a CCD sensor and forming a data stream, including a perception filter step and a logarithmic adaptive quantisation step;
Figure 9 shows a flow diagram of a method for decoding the data stream produced by the method of Figure 8 and for reconstructing an analogue signal;
Figure 10 shows a flow diagram of a method of encoding an analogue signal from a CCD sensor and forming a data stream, including optical hardware settings for compression, in accordance with a first embodiment of the present invention; and Figure 11 shows a flow diagram of a method for decoding the data stream produced by the method shown in Figure 10 and for reconstructing an analogue signal .
Detailed Description of the Preferred Embodiments
A CCD sensor device in addition to the output data stream representing the image or video signal, produces parameters describing the state of the device when operating. These operating parameters may be output separately to the video or image signal or added to it separately. These operating parameters represent the state of the hardware and optics at the time the signal is generated, for instance, the zoom level, aperture setting, exposure level, focus level, zone of focus and camera type (e.g. HDTV or the number of CCDs present) or relate to the CCD itself such as sensitivity, gain, temperature and camera ID. Additional information may be added such as the time of capture, a scene or reel name or description and whether the location type such as indoors, outdoors, sunny, cloudy or underwater. When the signal is encoded to form a data stream or file some or all of these operating parameters are added and may also be used to encode the signal.
Additional parameters may also include angles to determine the direction of the camera when the camera is, for instance, on a stand. The direction that the camera is pointing in may be uniquely determined by two angles
(azimuth and elevation) . Any equivalent coordinate system can be used in place of the azimuth and elevation. Angle of rotation of the camera around the axis of the camera (tilt) is also transmitted within the header.
The tilt parameter (or rotation) is used to determine the global motion compensation within the first stage of the motion estimation.
The azimuth and elevation parameters are used in two different parts of motion estimation.
First is to determine the panning of the camera and thereafter realise motion compensation accordingly.
Second, it is used in conjunction with the camera ID for image registration. When a camera ID change is detected, azimuth and elevation parameters are compared with the values used with the latest frame transmitted from this camera or device. This determines if motion compensation from this previously transmitted frame can be performed or not. If a change in azimuth or elevation is out of a defined range (typically +- 20 degrees on each parameter) then motion compensation cannot be realised within acceptable limits and a decision may be taken to transmit a full new frame .
When decoding the data stream (in the form of a continuous stream or file) the operating parameters are extracted from the data and used to decode the signal . This improves the resulting reconstructed signal or the perception of the signal to a viewer or listener of it. Figure 10 shows a flow chart describing a method for encoding a signal according to a preferred embodiment of the present invention. The encoding process 10' ' shown in Figure 10 is an example of a particular encoding process of many that may be used. This particular encoding process is described in detail with reference to Figures 1 and 8 below.
Figure 10 shows how the operating parameters (also known as optical hardware settings throughout the description and claims) are added to a data stream as shown in the optical hardware settings for video encoding step 950. This step is not limited to the optical settings only but may include any or all of the other operating parameters described above. This step captures information obtained from the sensor, typically a CCD or other video camera device, and sends this information directly in the transmitter 120 before being added to the data stream 130. These parameters may be stored in a buffer or file and indexed with timing information.
This information may be used for several purposes. The zoom information may be used as the first stage in motion estimation. Knowing the rate of change of the zoom for the sensor optics allows data for a subsequent frame to be interpolated from an initial frame. This also may improve border optimisation mentioned below with reference to Figure 8. When a series of frames is reconstructed the zoom parameter may be used to produce frames that incorporate compensation for the change in zoom level.
The zone of focus determines which part of a scene is most important to the viewer. When compressing or reconstructing these portions of a scene these zones may be allocated more bandwidth and computing power than areas outside of this zone. In this way system resources may be optimised. This can be applied on both video encoding or still picture encoding.
The aperture and illumination information may also be used as the first stage in motion estimation. When illumination differences between frames are determined subsequent frames may be reconstructed according to these changes and compensation for these changes may be applied.
As an example, the combined information of exposure and aperture may be used to determine the range of search for a motion estimation algorithm. A high value for the aperture parameter combined with a small exposure reflects the capture of a quick motion subject. The range of search for motion estimation is then large.
As a further example, the camera ID can be use when compressing or encoding a new frame. If it comes from a different camera than the previous frame, and the camera ID is located within a database, the latest frame transmitted with this camera ID is used as an anchor frame for the motion estimation. Similarly, the decoder when receiving the camera ID will perform motion compensation using the latest frame received with this camera ID.
Furthermore, it is not necessary to transmit the camera ID with each frame, only when change occurs. Alternatively, the camera ID may be transmitted at regular intervals such as when a frame is within a specified range of frames (ie 60 frames) .
Additionally, the encoder may map the camera ID received from the device to its own camera ID device database. This may conserve system resources and save data when transmitting.
The addition of hardware settings to an encoded data stream is compatible with most of the known encoding and compressing techniques and algorithms used for video (for example, MPEG4-2, MPEG4-10/H264, etc.) and for still imaging (for example, JPEG, JPEG2000) . Furthermore, these improvements may be used with other types of data such as sound and music signals. The hardware settings may be used within the encoding or compression step itself to improve the resulting encoded signal or may be added to the encoded signal in isolation, for instance in header parts of a file or other sections of the data stream.
Once a signal has been encoded into a data stream in the form of a continuous stream or as a file the data stream may be decoded to reconstruct the original signal . The data stream is decoded using a corresponding decoding process to the encoding process used to encode the signal. The operating parameters included in the data stream are used during this decoding process to improve the reconstructed signal .
Figures 2 and 9 show suitable decoding methods that may be used and correspond to the encoding methods described below with reference to Figures 1 and 8. Figure 11 shows a flow diagram describing a process of generating an analogue output signal 280 by decoding the data stream 130 generated by the encoding process 10 '' described with reference to Figure 10. The decoding process 200' ' is similar to that shown in Figures 2 and 9 and described below and like features have been given the same reference numbers .
Figure 11 shows the step where operating parameters (also known as optical hardware settings throughout the description and claims) are extracted from the data stream 130. This occurs within the optical hardware settings for video decoding step 960. This step retrieves information captured by the sensor and incorporated into the data stream 130 by the optical hardware setting for video encoding step 950 step described with reference to Figure 10.
This information is used when transforming the signal to reconstruct the frames more efficiently and more accurately as described with reference to Figure 10.
As mentioned with reference to Figure 10 the addition of hardware settings to the data stream (and their extraction from this data stream) may be used together with any other suitable compression or encoding algorithms or techniques and not just those encoding and decoding methods described here.
Several example encoding and corresponding decoding methods used in the preferred embodiments of the present invention shall now be described. For clarity, the following methods are described without reference to the addition or extraction of operating parameters. Any- suitable other encoding or compression techniques may be used as alternatives.
Figure 1 shows a flow chart describing a method for encoding a signal . The encoding process starts when a sensor 20 generates an analogue input signal 30. This analogue input signal 30 may comprise one or more 1-D signals. Each 1-D signal may correspond to a particular colour signal, a composite signal or an audio channel, for instance. Where multiple 1-D signals are present, each 1-D is processed separately. The following description relates to the processing of individual 1-D but it will be appreciated by the skilled person that it is possible to process multiple 1-D signals in parallel. The sensor 20 may be a CCD or a microphone or other electronic device suitable for detecting a sound or image and generating an electronic signal from it. The device generating the electronic signals may be a video camera, for example. Such devices generate an analogue input signal 30 and this analogue input signal 30 is processed in a signal processor 35 to form a digital signal 40. The analogue input signal 30 is filtered and digitised before being sampled in discrete time interval components. This process is shown by the group of components 45 enclosed by dashed lines and is described in further detail and with reference to Figure 3.
The digital signal 40 is passed to signal transform component 60. Signal transfer component 60 also retrieves details from database 50. Database 50 stores the details of the transformation and modelisation functions 140 that are to be used to encode the signal 40. The signal transform component 60 performs all of the transformations contained in the database on the digital signal 40.
The encoding process 10 is continuous (although the analogue input signal 30 can be processed in discrete digital signal 40 components as described in Figure 3) and synchronisation of the process is maintained by the bit allocation component 70, which generates a synchronisation bit 75 for each discrete signal component provided to signal processor 35. As the digital signal 40 is transformed using the transformation and decomposition functions 140 a continuous stream of output parameters are generated by the signal transform 60 component.
Next, the quantisation component 80 quantises the signal provided by the signal transform component 60 thereby reducing the precision of the output parameters of that signal and further reducing the volume of data generated by the encoding process 10. The quantisation process 80 produces quantised parameters 85 by removing a predetermined number of least significant data from the output parameters, i.e. introducing a predetermined rounding error to the output parameters .
Next, the extraction of significant parameters component 90 determines the set of parameters that are to be extracted from the quantised parameters 85 to describe the analogue input signal 30 and form a set of extracted parameters 95. The precision of the signal is determined by choice of these extracted parameters 95. The external transform for exception handling component 100 retrieves or generates variable and adaptive functions 108 when the extracted parameters 95 cannot adequately describe the analogue input signal 30. These variable and adaptive functions 108 are added to the extracted parameters 95 to form signal 105. This component 100 is described in more detail below.
Next, the extracted parameters and any added variable and adaptive function data 108 are compressed using known compression techniques familiar to the person skilled in the art . This compression step is performed in the entropy coding component 110 to form compressed data 115. Following this, the transmitter 120 formats the compressed data 115 into an output stream 130 that may be read by a suitable decoding method 200, as described below. The synchronisation bit 75 described above is added to the output data stream 130 by the transmitter 120. The synchronisation bit 75 is added to the header of the data stream 130. The bit allocation component 70 runs in parallel to all of the processes from the quantisation component 80 to the entropy encoding step 110.
Figure 2 shows a flow diagram describing a process of generating an analogue output signal 280 by decoding the data stream 130 generated by the encoding process 10 described in Figure 1. As was mentioned above in relation to the encoding process, the decoding process relates to the decoding of a 1-D signal. However, it is possible to perform the following decoding process on many 1-D streams of data in parallel and recombine each decoded 1-D signal to form the original multi-dimensional signal. In essence this decoding process 200 works as a reverse of the encoding process 10. The decoding process 200 begins at the foot of Figure 2 where a receiver 210 receives the data stream 130. The synchronisation bit, 75 contained within the header of the data stream 130, is used by the bit allocation component 240 to maintain synchronisation between the input data stream and the resultant analogue output signal 280.
In parallel, the compressed data 215 within the data stream 130 is decompressed during the entropy decoding component 220 forming decompressed data 225.
Any variable and adaptive functions 108 contained with the input data stream 130 are removed by the external transform for exception handling component 230. This component is discussed below.
Next, the signal transform process 250 reconstructs a digital signal 270 from the input parameters contained within the data stream 130. Database 260 contains an identical set of transformation and decomposition functions 140 to that of the encoding database 50 as shown in Figure 1. The signal transform process 250 uses the transformation and decomposition functions 140 retrieved from the database 260 to generate the digital signal 270 from the parameters contained with the input data stream 130.
During the encoding process 10 each function 140 within the database 50 is performed on the digital signal 40. In a similar way the output digital signal 270 is generated by performing in reverse each of those same functions 140 on the input parameters contained within the data stream 130 to reconstruct the digital signal 270 corresponding to the original digital signal 40.
The output digital signal 270 may be optionally converted into an analogue output signal 280, corresponding to the original analogue signal 30, and directed to an output device. This may be the original CCD sensor 20 or another device using data in the digital domain 290.
Figure 3 shows the group of components 45 enclosed within the dashed line 45 of Figure 1. These components are concerned with the initial processing of the analogue input signal 30 forming each of the discrete digital signals 40.
The analogue signal 30 is processed by the signal processor 35 that has the following components. First, the analogue signal 30 is filtered using an anti-aliasing filter 300. This filters out higher frequency components of the analogue signal 30 that may distort when sampled by the analogue to digital converter 320. The anti-aliasing filter 300 works according to the Nyquist criterion and in accordance with Shannon's sampling theorem. These criteria require the analogue to digital converter 320 to sample the analogue input signal 30 at at least twice the frequency of the maximum frequency component of the analogue signal 30. These criteria are well-known to the person skilled in the art of digital electronics and so require no further explanation here.
The signal 315 produced by the anti-aliasing filter 300 is acquired by the sample and hold device 310 before being converted into the digital domain by the analogue to digital converter 320.
A digital signal processing unit (DSP) 330 contains at least two memory banks 340 (0 and 1) . The digital data representing the analogue signal are stored in discrete time interval components 325 within these memory banks 340. In other words the digital signal is interleaved and each discrete time interval component 325 is processed while the remaining components are stored in memory within the DSP 330. A clock speed for the DSP 330 is chosen to be significantly faster than the sample rate of the digital signal. Therefore, there is the potential for several clock cycles to be used to process each discrete-time interval component 325 of the digital signal 40. In this way the analogue input signal 30 may be processed in real time with very little delay between the analogue input signal 30 entering the encoder 10 and the production of the output data stream 130.
The signal processor 35 may be a single discrete device. Alternatively, a single device may provide both the signal processor 35 and signal transform component 60.
The database 50 as shown in Figure 1 comprises all of the modelisation functions and transformations performed on the digital signal 40. The results of these transformations 140 are quantised by the quantisation component 80 and are then extracted by the extraction of significant parameters component 90 forming a set of extracted parameters 95.
These functions are contained within the database 50 and form a core kernel of functions 140. There is a second category of functions and these are the variable and adaptive functions 108 used by the external transform for exception handling component 100. These too may be stored within database 50 or in a separate database or file (not shown) . The variable and adaptive functions 108 comprise the adaptive kernel of functions. Therefore, the overall kernel of functions 420 comprises both the core kernel and the adaptive kernel of functions.
The database 50 contains both the modelisation functions and their associated transformations used to generate the extracted parameters 95.
Figure 4 shows a schematic diagram describing the choice of properties of the kernel of functions. Each of these functions is described schematically by equation 420. The composition of the kernel of functions 420 is determined from the properties of the audio visual material 400 producing the analogue input signal 30 that is to be encoded. When determining the actual composition of these functions 420, it is also necessary to consider the underlying device that will generate this audio video material 400.
The core kernel of functions may include many well known functions and their associated transformations. These may include wavelet transformations such as discrete wavelength transforms (DWT) , fractal decomposition functions, discrete cosine transforms (DCT) and other filter based functions. These functions are well-known in the field of data compression but will be used to extract the parameters 95 that will be used to recompose the signal during the decoder process and do not require any further discussion here.
The variable and adaptive functions 108 are additional modelisation functions with associated transformation functions that may be dynamically generated or retrieved in response to the input signal 40. These variable and adaptive functions 108 may be stored within a separate database (shown in dashed lines) or only generated when required. Alternatively, these variable and adaptive functions 108 may be stored within database 50. The signal processor 35 may be a neural network processor, which may determine whether or not to store particular variable and adaptive functions 108 based upon the properties of the analogue input signal 30 or the resources of the intended decoding processor or a combination of both.
The variable and adaptive functions 108 are generated and retrieved by the external transform for exception handling component 100 shown in Figure 1. These variable and adaptive functions 108 are not continuously performed on the digital signal 40, but are only created when the core kernel functions produce an output which is outside predetermined limits. This may be determined by reconstructing the digital signal 270 from the core kernel functions (within the encoder 10) and comparing the reconstructed digital 270 signal with the original digital signal 40 provided through line 109 and calculating the difference between these two signals. If the error is outside predetermined limits, one or more variable and adaptive functions 108 are created. This quality checking procedure is performed within the external transform for exception handling component 100. Details concerning the variable and adaptive functions 108 are added to the data output stream 130 header so that they may be interpreted by the decoder process 200.
The quality checking procedure is repeated using the parameters generated by the variable and adaptive functions 108 in the same way as the quality checking procedure is performed for parameters generated from the core kernel functions 420. If the error is still outside of the predetermined limits, the portion of the digital signal 325 that failed to be parameterised within acceptable limits (an artefact) is added to the output data 130 as raw data or can be compressed by the usual means, as is known from the prior art (entropy encoding, etc.) .
Equation 1 represents a typical core kernel function as contained within databases 50 and 260:
Figure imgf000038_0001
Equation 1 Equation 2 represents a variable and adaptive function as added to the data output stream of the encoder 10 :
Figure imgf000038_0002
Equation 2
where βJ is a variable and adaptive function.
Equation 3 describes generation of core kernel functions 140 contained with the decoder function database 260. The decoder functions must generate a reconstructed digital signal 270 from the input parameters. Where system resources are limited (such as in a mobile phone or other similar device) the decoder functions may work with a lower precision to the encoder functions and so generate a lower quality reconstructed signal compared with the original digital signal 40.
r . {ft {/'<} Equation 3
where F represents quality of required reconstructed signal. For minimal degradation in signal quality, F = id.
Figure 5 shows a schematic diagram describing the deconstruction of a signal (St) . The mapper 500 carries out the signal transformation by using each core kernel function 420 from the database as well as any required variable and adaptive functions 108. The data output is represented by Equation 4 :
OLt /V> £ Equation 4
where L 2Z. is a vector describing the extracted parameters 95 extracted from the core kernel of functions 420 as well as any variable and adaptive functions 108 used.
Jv represents the variable and adaptive functions 108 that may have been used. £ represents additional parameters included within the data output 130. These parameters may include an indication of the presence of a variable and adaptive function 130 and any flags or parameters describing the original audio/video signal such as the original format (e.g. PAL, NTSC, etc) .
Figure 6 shows a schematic diagram describing the reconstruction of the signal from the data output of the mapper 500. The data output (now data input) is reconstructed within the builder module 600 which provides a reconstructed data output as described by Equation 5 :
Equation 5
Figure imgf000040_0001
with /'=r(/) and S'(t) corresponding to the reconstructed digital signal 270.
The builder module 600 uses the core kernel functions 420 as well as the variable and adaptive functions 108 (if present) to reconstruct the digital signal 270.
Unlike data compression techniques such as those used by the MPEG standard, the quality of the reconstructed digital 270 signal does not rely on the volume of data contained within the bit stream 130 (output or input parameters) but is instead determined by the functions 140 contained within the encoding and decoding databases and any variable and adaptive functions 108 used. In general, these functions are not transmitted within the bit stream (except for occasional variable and adaptive functions 108 that are transmitted under exceptional circumstances) . Synchronisation between the variable and adaptive functions stored in the encoder 10 and decoder 200 is achieved by incorporating instructions to update, amend or delete the variable and adaptive functions within the header of the data stream 130 forming the data output from the mapper 500. Not every variable and adaptive function 108 is retained in the encoder and decoder. The encoder system may be limited in memory or processing power, and so it may be more efficient to generate these new functions on an ad hoc basis as and when required. The encoder will therefore assign a priority co-efficient to each new function 108 with the highest priority functions kept in preference over the lower priority functions. These priority co-efficients are also transmitted in the header of the data steam 130 and used by the decoder system 200 in determining whether or not to retain the new functions 108 within the decoder 200.
The generation and updating of the adaptive and variable functions 108 may be performed by a neural network or other suitable processor. The neural network will use the digital signal 40 to determine which, if any function to retrieve or generate and will also use a set of criteria describing the required output quality (e.g. HDTV or mobile phone displays) . The input analogue signal 30 may be any signal describing data but in particular, this technique is specifically suitable for video and/or audio signals. The variable and adaptive functions 108 may be generated by the neural network or suitable processor from a set of function libraries separate to the encoding database 50. A further efficiency saving in processing power and data volume may be made by buffering a certain volume of the most recent data 130 in memory. This allows repetitive signal portions 325 to be identified and referenced during the encoding process. Instead of generating parameters 95 each time for each subsequent repetitive signal portion 325 (i.e. repeating the full encoding process for each repetitive signal portion 325, as described above), the encoder will add to the output data 130 a reference to the set of parameters 95 previously buffered. The decoding process will also buffer the input data 130 in memory and will regenerate the repeated signal portion 325 each time a reference to a set of parameters 95 is encountered in the data 130. This results in improved throughput during the decoding process as modelisation functions will not be required for the repetitive signal portions 325. The buffered output signal 270 will be retrieved instead.
The description above describes the processing of an analogue signal 30 generated by a sensor 20. The encoding
10 and decoding 200 process are also suitable for signals generated in other formats such as television signals (NTSC, PAL, SECAM, etc.), for instance. Such television signals contain non-video or audio components. Therefore, additional processing is required during both the encoding 10 and decoding 200 processes to process the non-video or audio components.
As an example, the pre-processing of an NTSC signal will now be described. This pre-processing will be performed instead of obtaining an analogue input signal 30 from the sensor 20, as described above in relation to Figure 1.
An NTSC signal contains a set of signals before the active video signal is encountered. This set of signals include a blank level, a vertical sync pulse, a horizontal sync pulse, colour burst information and may also contain teletext information. These signals and their use are well known to the person skilled in the art and do not require any further description. Other non-video or audio signals may be present and these signals may be processed in a similar way. As these non-video or audio signals have a well defined structure and content it is possible to reconstruct them from a minimum amount of information as their structure and location within the signal is set as a standard known format. Therefore, these signals are removed from the analogue input signal 30 within a pre-processing stage (prior to the encoding process 10) . The properties of these removed signals are added to the data output 130 as a simple flag or reference parameter. In the case of teletext, the data are simply added as raw or compressed text.
During the decoding process 200 a further step is required to regenerate the non-video or audio signals (if required) . This additional step regenerates the analogue output signal 280 in the original format using the flag or reference parameters contained with the input data 130. The input data 130 may also contain an additional flag or data element indicating the signal type (NTSC, PAL, SECAM, etc.) that is to be regenerated. Finally, any teletext data are added to the output signal, if required. Figure 7 shows a schematic diagram of an analogue input signal 30 such as one of the 1-D signals previously- described. The analogue input signal 30 is separated into a set 720 of individual analogue signals 740 by a filter bank 710. Each individual signal 740 corresponds to a different frequency range of the original analogue input signal 30.
Each individual signal 740 is processed, as described above with reference to Figure 1, resulting in a set 730 of individual 130 data containing header and output data for each individual signal 740 along with an additional item of data corresponding to the frequency band of the individual signal 740. All of the output data 130 are combined in a single file (not shown) . On reconstruction, the data 130 corresponding to each separate frequency band is reconstructed separately by the reconstruction process described above with reference to Figure 2. The reconstructed signals are then combined to form a single analogue output signal 280, as shown on Figure 2.
The effect of the filter bank 710 is to provide a level of analogue processing before any parameters are extracted. This also allows a certain amount of parallel processing to take place and so improve throughput. This parallel processing may be in addition to parallel processing or multiple 1-D signals. The extraction process may be either in the analogue or digital domain.
Figure 8 shows a flow chart describing a method for encoding a signal. The encoding process 10' is similar to that shown in Figure 1 and like features have been given the same reference numbers .
The encoding process 10 ' additionally contains a perception filter 800 following the signal transform 60 step, a sorting of parameters 810 step following the extraction of significant parameters 90 step and border optimisation 55 performed before the signal transform 60 step. Additionally, the quantisation 80 step of Figure 1 is replaced by a logarithmic quantisation step 80'.
The perception filter 800 uses a set of heuristically determined coefficients, which are independent of the content to be encoded. Each coefficient relates to a specific frequency (or range of frequencies) that may be present within the signal and is used as a multiplication factor to increase or decrease the encoding effort used for parts of the signal having the corresponding frequency. For instance, where the signal is a video signal containing image information certain parts of the image (having particular spatial frequencies) are perceived by a viewer as being more noticeable or important. The perception filter allows the more important parts of the signal to be more fully encoded than those parts of the signal that are perceived to be less important. In other words, parts of the signal are encoded differently using varying levels of resources depending on the frequency of those portions of the signal . This allows bandwidth and computing power to be used more efficiently. The perception filter step 800 may be applied directly to the signal or alternatively, to the output parameters generated after the signal is transformed. The sorting of parameters 810 step groups together parameters formed from different types of transformations. By grouping similar parameters together they may be compressed by the entropy coding 110 step more efficiently. Exceptions are directed to the external transform for exception handing component 100.
Logarithmic quantisation is used in step 80' instead of linear quantisation as described with relation to Figure 1.
Border optimisation 55 is used to generate data required to perform reliable encoding. Typically, this occurs near to the border of an image frame, where data outside of the border are required to encode the signal . These "missing" data may be generated by using symmetry, where missing data are generated by interpolation from data contained within the border. Motion estimation may also be used. For instance, where a series of frames is panned from side to side or zoomed in, data from a previous frame may be used to generate new data and so extend the image beyond its border.
Figure 9 shows a flow diagram describing a process of generating an analogue output signal 280 by decoding the data stream 130 generated by the encoding process 10' described in Figure 8. The decoding process 200' is similar to that shown in Figure 2 and like features have been given the same reference numbers .
Figure 9 additionally includes an inverse perception filter 900, which contains a corresponding set of coefficients to the perception filter 800 used to encode the signal and described with reference to Figure 8. The coefficients are used as multiplication factors to return each frequency component of the signal to that of its original level, i.e, before the perception filter 800 applied any scaling factors. As in the encoding method described with reference to Figure 8, the inverse perception filter step 900 may be applied directly to the parameters or to the reconstructed signal.
As will be appreciated by the skilled person, details of the above embodiments may be varied without departing from the scope of the present invention, as defined by the appended claims.
For example, the database 50 may contain additional transformation or modelisation functions that are not performed on each segment of the digital signal 40. The adaptive and variable functions 108 may also be stored within database 50. Other types of transformation and modelisation functions may be performed during the encoding
10 and decoding 200 processes. The header of the data stream 130 may contain additional information regarding the analogue input signal 30 such as the date and time of the acquisition of the signal, the type of equipment used and the level of quantisation used. The discrete segments of the digital signal 325 may be stored in any number of memory banks 340 and these memory banks 340 may be located outside or inside the DSP 330. Any type of data may be encoded and decoded by this technique such as data stored in a database or within a computer system, for instance. The entropy coding 120 and decoding 220 processes may use any well know lossless compression techniques such as Huffman, simple run- line encoding and other arithmetic techniques.
The synchronisation signal may be a clock signal generated within the analogue or digital processor or may be a synchronisation signal contained within the signal itself, such as an NTSC, PAL or SECAM synchronisation signal, for instance. In this case it may not be necessary to add a synchronisation signal as this may be present already. Alternatively, a synchronisation signal may be completely absent provided internal synchronisation or timing is kept when encoding or decoding the signal .
The logarithmic adaptive quantisation, perception and inverse perception filters and optical hardware setting for video encoding and decoding described with reference to Figures 8 to 11 may be implemented together or separately within systems or methods to encode and decode signals.
The operation parameters may themselves be compressed before being added to the data stream or may be added in an uncompressed format .
The output and input data streams may be continuous signals or files or sets of files. Furthermore, the signal may represent optical images, video, sound or music data.

Claims

CLAIMS :
1. A method of encoding a signal comprising the steps of: receiving one or more operating parameters from a device used to generate the signal; encoding the signal to form a data output, wherein the data output contains the one or more operating parameters.
2. The method of claim 1, wherein the operating parameters ) are used to encode the signal .
3. The method of claim 1 or claim 2, wherein the encoding step further comprises the steps of : performing at least one transformation on the signal using at least one transformation function (140) thereby- generating at least one output parameter from the transformation; associating a synchronisation signal (75) with the at least one output parameter; and 0 providing the data output (130) comprising the synchronisation signal (75) and the at least one output parameter.
4. The method of claim 3 where the signal is an analogue 5 signal and the method further comprises the step of: converting the analogue signal into a digital signal before performing the at least one transformation (140) on the digital signal .
5. The method of claim 3 or claim 4 further comprising the step of : dividing the signal into discrete time segments (325) before performing the at least one transformation (140) and wherein the at least one transformation (140) is performed on each discrete time segment (325) of the signal.
6. The method of any of claims 3 to 5 wherein one or more additional transformations (108) are generated and performed on the signal in response to at least one property of the signal .
7. The method of claim 6 further comprising the step of : adding the details of the additional one or more transformations (108) to the data output (130) .
8. The method of any previous claim wherein at least a portion of the data output (130) is compressed.
9. The method of any of claims 3 to 8 further comprising the step of : separating the signal into a set of separate signals each corresponding to a different frequency band before performing the at least one transformation on each of the separate signals.
10. The method of any of claims 3 to 9 further comprising the steps of : digitising a portion of the signal; and adding the digitised portion to the data output (130) .
11. The method of any of claims 3 to 10 further comprising the step of: storing a portion of the data output (130) as referenced data in a memory buffer so that repetitive signal portions can be identified and duplicated in the data output (130) .
12. The method of any of claims 1 to 11, further comprising the step of applying a predetermined multiplication factor to a portion of the signal.
13. The method of claim 12, wherein the multiplication factor applied is dependent on the frequency of the portion of the signal .
14. The method of any of claims 3 to 13, further comprising the step of applying a quantisation filter to the output parameter.
15. The method of claim 14, wherein the quantisation filter is a logarithmic quantisation filter.
16. The method of any of claims 3 to 15, wherein the signal is an image and the method further comprising the step of generating an additional signal corresponding to an area outside of the image.
17. The method of any of claims 3 to 16, further comprising the step of sorting the at least one output parameter. - so ¬
ls. A method of decoding a signal comprising the steps of: extracting from a data input one or more operating parameters from a device used to generate the signal; decoding the data input using the one or more operating parameters .
19. The method of claim 18, wherein the decoding step further comprises the steps of : receiving the data input containing a synchronisation signal (75) and at least one output parameter (95) derived from at least one transformation (140) performed on the signal during encoding; maintaining synchronisation of the decoding method using the synchronisation signal (75) ; and generating a signal by performing at least one function corresponding to the at least one transformation (140) on the at least one output parameter.
20. The method of claim 19 further comprising the step of: performing a function (108) contained within the data input (130) on the at least one output parameter to generate the signal .
21. The method of claims 19 or 20 further comprising the step of: at least partially decompressing the data contained within the data stream (130) .
22. The method of any of claims 19 to 21 further comprising the step of: converting the generated signal into a digital signal (270) .
23. The method of any of claims 18 to 22, wherein the encoded signal is decoded with a precision that may be varied.
24. The method of any of claims 19 to 23, further comprising the step of applying a predetermined multiplication factor to a portion of the data input corresponding to a portion of the encoded signal.
25. The method of claim 24, wherein the multiplication factor applied is dependent on the frequency of the encoded signal .
26. The method of any of claims 3 to 17 or 18 to 25, wherein the functions are stored as data describing the functions in a database (50, 260) and wherein the method further comprises the step of: retrieving data describing the functions from the database (50, 260) .
27. The method of claim 26 further comprising the step of: maintaining synchronisation between the functions contained within an encoder database (50) and the functions contained within a decoder database (260) .
28. The method of any previous claim, wherein the device is an optical still or video camera and the one or more operating parameters are selected from a group consisting of illumination, aperture, focus, zoom, zone of focus, camera ID.
29. The method of claim 28, wherein the one or more operating parameters includes a camera ID and the camera ID is included in a device database.
30. The method of claims 28 or 29, wherein the camera ID is used as an anchor frame for motion estimation.
31. The method of any of claims 28 to 30, wherein the camera ID is recorded when a scene changes.
32. The method of any of claims 28 to 30, wherein the camera ID is recorded at regular intervals.
33. The method of any of claims 28 to 32, wherein the one or more operating parameters includes one or more camera position parameters.
34. The method of claim 33, wherein the one or more camera position parameters are selected from a group consisting of azimuth, elevation and tilt.
35. The method of claim 34 further comprising the step of editing signal data using the one or more operating parameters.
36. The method of claim 35, wherein the editing step further comprises applying motion estimation to compensate for changes in the one or more operating parameters.
37. The method of claim 33 or 34, wherein one or more or the operating parameters are combined for form additional operating parameters.
38. Apparatus for encoding a signal comprising: means for receiving one or more operating parameters from a device used to generate the signal; means for encoding the signal to form a data output, wherein the data output contains the one or more operating parameters.
39. The apparatus of claim 28, wherein the means for encoding further comprises: a database (50) containing details of at least one transformation (140) ; means for maintaining synchronisation (70) ; and a processor (330) adapted to perform at least one transformation (140) on the signal using the at least one transformation (140) retrieved from the database (50) thereby generating an output parameter (95) and form the data output (130) containing the synchronisation signal (75) and the output parameter.
40. The apparatus of claim 39 further comprising: means to compress (110) at least some of the data output (130) .
41. The apparatus of claim 39 or claim 40 wherein the signal is an analogue signal (30) and further comprising: an analogue to digital converter (320) for converting the analogue signal into a digital signal.
42. The apparatus of claim 41 further comprising memory (340) to store discrete segments of the digital signal (325) .
43. Apparatus for decoding a signal comprising: means for extracting from a data input one or more operating parameters from a device used to generate the signal; means for decoding the data input using the one or more operating parameters.
44. The apparatus of claim 43, wherein the means for decoding further comprises: a database (260) containing details of at least one function; means for maintaining synchronisation (240) ; and a processor (330) arranged to receive the data input (130) containing a synchronisation signal (75) and an output parameter produced from a transformation (140) on the signal, retrieve the details of at least one function corresponding to the transformation (140) on the signal from the database (260) and generate a signal from the output parameter using the retrieved details of the at least one function.
45. The apparatus of claim 44 further comprising: means for decompressing (220) at least a portion of the data contained in the data input (130) .
46. A computer program comprising program instructions that, when executed on a computer cause the computer to perform the method of any of claims 1- to 37.
47. A computer-readable medium carrying a computer program according to claim 46.
48. A computer programmed to perform the method of any of claims 1 to 37.
49. A method for encoding a signal substantially as herein described with respect to any of Figures 1, 3, 4, 5, 8 and 10.
50. A method for decoding a signal substantially as herein described with respect to any of Figures 2, 4, 6, 9 and 11.
51. Apparatus for encoding a signal substantially as herein described with respect to any of Figures 1, 3, 4, 5, 8 and 10.
52. Apparatus for decoding a signal substantially as herein described with respect to any of Figures 2, 4, 6, 9 and 11.
53. A computer program substantially as described herein, with reference to any of Figures 1 to 11.
54. A computer substantially as described herein, with reference to any of Figures 1 to 11.
PCT/GB2007/001247 2006-04-07 2007-04-05 Encoding and decoding a signal WO2007116207A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB0607067.6 2006-04-07
GB0607067A GB2425013A (en) 2005-04-07 2006-04-07 Encoding video data using operating parameters of the image capture device
PCT/GB2006/001296 WO2006106356A1 (en) 2005-04-07 2006-04-07 Encoding and decoding a signal
GBPCT/GB2006/001296 2006-04-07

Publications (1)

Publication Number Publication Date
WO2007116207A1 true WO2007116207A1 (en) 2007-10-18

Family

ID=38016847

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2007/001247 WO2007116207A1 (en) 2006-04-07 2007-04-05 Encoding and decoding a signal

Country Status (1)

Country Link
WO (1) WO2007116207A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005055605A1 (en) * 2003-12-03 2005-06-16 Koninklijke Philips Electronics N.V. System and method for improved scalability support in mpeg-2 systems
EP1630744A1 (en) * 2004-08-26 2006-03-01 Thomson Licensing Method and apparatus for improved encoding of video signals using additional encoder information items, and corresponding storage medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005055605A1 (en) * 2003-12-03 2005-06-16 Koninklijke Philips Electronics N.V. System and method for improved scalability support in mpeg-2 systems
EP1630744A1 (en) * 2004-08-26 2006-03-01 Thomson Licensing Method and apparatus for improved encoding of video signals using additional encoder information items, and corresponding storage medium

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HEIJMANS H J A M ET AL: "MASCOT: metadata for advanced scalable video coding tools (Final report)", REPORT - PROBABILITY, NETWORKS AND ALGORITHMS, CENTRUM VOOR WISKUNDE EN INFORMATICA, AMSTERDAM,, NL, no. PNA-R0307, 30 June 2003 (2003-06-30), pages COMPLETE67, XP002310967, ISSN: 1386-3711 *
HIDALGO J R ET AL: "Metadata-based coding tools for hybrid video codecs", PROCEEDINGS OF THE PICTURE CODING SYMPOSIUM, 23 April 2003 (2003-04-23), pages 473 - 477, XP002310966 *

Similar Documents

Publication Publication Date Title
KR101377021B1 (en) Encoding device and method, decoding device and method, and transmission system
JP6722995B2 (en) Encoding method, encoding device, imaging device, and program
KR100664928B1 (en) Video coding method and apparatus thereof
US8254707B2 (en) Encoding device, encoding method, encoding program, decoding device, decoding method, and decoding program in interlace scanning
KR101193267B1 (en) Image processing device and processing method
WO2016064583A1 (en) Lossless compression of raw color sensor data from a color array filtered image sensor
JP2002135783A (en) Processing method of variable bit rate for streaming service
KR20150068402A (en) Video compression method
JP2006304329A (en) Encoding method, decoding method, encoding device, and decoding device
US20150256839A1 (en) Image processing apparatus and image processing method, image encoding apparatus and image encoding method, and image decoding apparatus and image decoding method
CN1608378A (en) Improving temporal consistency in video sharpness enhancement
JP3789836B2 (en) Image coding apparatus and method
JPH1079941A (en) Picture processor
FR2755818A1 (en) DIGITAL SIGNAL CODING BY DECOMPOSITION IN FREQUENCY SUB-BANDS AND VECTOR QUANTIFICATION IN FINISED STATES
JP2011041329A (en) Image decoding apparatus and image encoding apparatus
US20120170663A1 (en) Video processing
US20120093227A1 (en) Data compression method and data compression device
US20230133895A1 (en) Image encoding apparatus and method for controlling the same and non-transitory computer-readable storage medium
TWI390959B (en) Video signal processing device, video signal processing method and video signal processing program
GB2425013A (en) Encoding video data using operating parameters of the image capture device
JP2017535159A (en) Method and apparatus for encoding and decoding a video signal using an improved prediction filter
WO2007116207A1 (en) Encoding and decoding a signal
KR20070058637A (en) Permutation procrastination
TW200418330A (en) Intelligent video stream processing method and system thereof
JP4749508B2 (en) Image decoding method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07732295

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07732295

Country of ref document: EP

Kind code of ref document: A1