EP4278608A1 - Method for playback of a video stream by a client - Google Patents

Method for playback of a video stream by a client

Info

Publication number
EP4278608A1
EP4278608A1 EP21823541.4A EP21823541A EP4278608A1 EP 4278608 A1 EP4278608 A1 EP 4278608A1 EP 21823541 A EP21823541 A EP 21823541A EP 4278608 A1 EP4278608 A1 EP 4278608A1
Authority
EP
European Patent Office
Prior art keywords
video stream
data
frames
camera
encoder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP21823541.4A
Other languages
German (de)
French (fr)
Inventor
Hossein Bakhshi GOLESTANI
Christian Rohlfing
Mathias Wien
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rheinisch Westlische Technische Hochschuke RWTH
Original Assignee
Rheinisch Westlische Technische Hochschuke RWTH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rheinisch Westlische Technische Hochschuke RWTH filed Critical Rheinisch Westlische Technische Hochschuke RWTH
Publication of EP4278608A1 publication Critical patent/EP4278608A1/en
Pending legal-status Critical Current

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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video

Definitions

  • the digital encoding of video signals is found in many forms in the present day.
  • digital video streams are made available on data carriers such as DVDs, Blu-ray or as a download or video stream (e.g. also for video communication).
  • the aim of video coding is not only to send representations of the images to be transmitted, but also to keep data consumption low at the same time. On the one hand, this allows more content to be stored on media with limited storage space, such as DVDs, or to enable several users to transport (different) video streams at the same time.
  • a coder processes raw video data.
  • a single image is referred to as a frame.
  • a frame can be thought of as a collection of pixels.
  • a pixel represents a point in the frame and indicates its color value and/or its brightness.
  • the amount of data for a subsequent frame can be reduced if a large part of the information is/are already contained in one or more previously encoded frame(s). Then it would be sufficient, for example, if only the difference is transmitted. In doing so, one makes use of the knowledge that a lot of the same content can often be seen in consecutive frames. This is the case, for example, when a camera captures a particular scene from one point of view and only a few things change, or when a camera slowly moves or rotates through the scene (translation and/or affine movement of the camera).
  • this concept reaches its limits when a high proportion changes between frames, e.g. when the camera moves (rapidly) within a scene or when objects move within the scene. In this case, in the worst case, every pixel of two frames could be different.
  • a camera i.e. a monocular recording system
  • a completely different requirement profile results.
  • many areas e.g. in autonomous driving, in drones, in social media video recordings, or even in body cams or action cams, only a single camera is usually used. But it is precisely here that it is necessary to keep the storage space used and/or the amount of data to be transmitted small.
  • FIG. 4 shows a schematic representation for explaining conceptual issues
  • FIG. 5 shows an exemplary relation of frames according to further aspects of the invention.
  • a three-dimensional motion model can therefore also be made available within the invention. Without restricting the generality of the invention, it is also possible to use the invention with all current video (de)coders as long as they are upgraded accordingly. In particular, Versatile Video Coding ITU-T H.266/ISO/IEC 23090-3 can be added to the invention.
  • FIG. 4 a video consisting of (consecutive) encoded images of two-dimensional frames (ie a sequence) is viewed.
  • a frame is also referred to as a two-dimensional representation. Due to the temporal redundancy between consecutive frames, a frame to be (encoded) at time t can be predicted from previously (t-1, t-2 ... (shown t-4) without being limited to four previous frames) encoded frames. These preceding frames are also referred to as reference (reference frames, reference images). It should be noted here that the frame order does not necessarily have to be a chronological order, but that the order shown and the (de)coded order can be different.
  • the conventional encoders are based on the similarity of frames in a two-dimensional model, i.e. only translations and/or affine movements are considered. However, there are a number of movements that cannot be easily expressed as a 2D model.
  • this invention uses an approach based on the three-dimensional environment in which the sequence is recorded and from which a 3D motion model can be displayed.
  • video recording is analogous to projecting a three-dimensional scene into the camera's two-dimensional plane.
  • the invention enables a different provision.
  • the 3D information is reconstructed on the decoder side, while in the example of the flow chart according to FIG. 2 the coder makes the 3D information available (compressed) and the decoder only uses it.
  • the coder makes the 3D information available (compressed) and the decoder only uses it.
  • a mixed form is provided in which the encoder provides the (coarse) 3D information (compressed) and the decoder further processes the 3D information to improve it.
  • the required bandwidth/storage capacity can be less than in the second or third case.
  • the demands on the computing power for the encoder and the decoder are high, while in the second case, the demands on the computing power are lower for the decoder and highest for the encoder.
  • provision can therefore be made for a decoder for example, to make its properties known to the coder, so that the coder may can do without the provision of (more precise) 3D information because the decoder provides a method according to FIG. 1 or 3.
  • the camera is any camera and is not fixed to a specific type.
  • the camera parameters CP and geometry data GD can be inferred.
  • the camera parameters CP can be inferred, for example, by methods such as Structure from Motion, Simultaneous Localization and Mapping or sensors.
  • the camera parameters CP can typically be determined from sensor data from gyroscopes, inertial measurement units (IMU), location data from a global positioning system (GPS), etc., while geometry data GD from sensor data from a LIDAR sensor, stereo cameras, depth sensors , light field sensors, etc. are determined. If both camera parameters CP and geometry data GD are available, the (de-)coding becomes easier and usually of better quality.
  • the encoder SRV can receive a conventional video signal Input Video in step 301, for example.
  • This video signal can advantageously be monitored for movement, ie relative movement of the camera. If a relative movement of the camera is detected, the input video signal Input Video can be subjected to a coding according to the invention, otherwise, if no relative movement of the camera is detected, the signal can be subjected to a usual coding as before and as indicated in step 303, 403, 503 the Decoder C are provided.
  • camera movement can be detected by the encoder, for example by visual data processing of the video signal and/or by sensors such as an IMU (Inertial Measurement Unit), a GPS (Global Positioning System), etc.
  • IMU Inertial Measurement Unit
  • GPS Global Positioning System
  • a corresponding flag Flag_3D or other signaling can be used to signal the presence of inventive content according to step 304, 404, 504 if it is not already per se recognizable from the data stream.
  • the (intrinsic and extrinsic) camera parameters CP can be estimated/determined in step 306, 406, 506, as indicated in step 305, 405, 505.
  • visual data processing such as Structure-from-Motion (SfM), Simultaneous Localization and Mapping (SLAM), Visual Odometry (V.O.), or any other suitable method can be used.
  • SfM Structure-from-Motion
  • SAM Simultaneous Localization and Mapping
  • V.O. Visual Odometry
  • the camera parameters CP can of course also be estimated/determined/taken over as a known value by other sensors.
  • these camera parameters CP can be processed and encoded in step 307, 407, 507 and made available to the decoder C separately or embedded in the video stream VB.
  • the geometry in three-dimensional space can be estimated/determined in step 310, 410, 510.
  • the geometry in three-dimensional space can be estimated from one or more previously encoded frames (step 309).
  • the previously determined camera parameters CP can be included in step 308 for this purpose.
  • the 3D geometry data can be estimated/determined from "raw" data. In the embodiment of Figure 1, this data can be estimated/determined from the encoded data.
  • the visual quality in the embodiments of the figure 2 and 3 can be better than in the embodiment of FIG. 1, so that these embodiments can provide higher-quality 3D geometry data.
  • multi-view computer vision techniques can be used without using other techniques, such as any existing depth sensors, such as LiDAR, or other image sensors that allow depth detection, such as stereo cameras, RGB+ D sensors, light field sensors, etc. to exclude.
  • the geometry determined in this way in three-dimensional space can be represented by a suitable data structure, e.g. a 3D model, a 3D mesh, 2D depth maps, point clouds (sparse or dense), etc.
  • a suitable data structure e.g. a 3D model, a 3D mesh, 2D depth maps, point clouds (sparse or dense), etc.
  • the video signal VB can now be encoded in the three-dimensional space in steps 312, 412, 512 on the basis of the determined geometry.
  • the novel motion-based model can now be applied to the reproduced three-dimensional information.
  • a reference image can be determined/selected in step 311 for this purpose. This can then be presented to the standard video encoder in step 312.
  • the encoding that follows can be applied to one, several or all frames of a predetermined set.
  • the coding can also be based on one, several or all previous frames of a predetermined set.
  • a standard video encoder can be used.
  • An additional reference can be added to the list of reference images (in step 311) or an existing reference image can be replaced.
  • only a specific spatial area can be overwritten with the new reference.
  • the standard video coder can be enabled to independently select, on the basis of the available reference images, the reference image that has a favorable property, for example high compression with low distortions (rate-distortion optimization).
  • the standard video encoder can thus encode the video stream using the synthesized reference and make it available to the decoder C in step 313, 413, 513.
  • the coder SRV can start again at corresponding re-entry points with a recognition according to step 301 and run through the method again.
  • Respawn points can be set at set time intervals based on channel characteristics, video frame rate, application, etc.
  • the 3D geometry can be reconstructed in three-dimensional space or an existing one can be further developed.
  • the 3D geometry will continue to grow as new frames are added until it restarts at the next respawn point.
  • the decoder side C can be operated in a corresponding manner, with the coder SRV and decoder C in FIGS. 1 to 3 being arranged horizontally at approximately the same height in their functionally corresponding components.
  • the decoder C can first check whether a corresponding flag Flag_3D or another signaling was used.
  • the video stream can be treated in step 316 by default. Otherwise the video stream can be treated in the new inventive way.
  • camera parameters CP can be obtained in steps 317, 417, 517.
  • the obtained camera parameters CP can be processed and/or decoded in optional steps 318 .
  • These camera parameters CP can be used, for example, for a depth estimation as well as for generating the geometry in three-dimensional space in step 320 based on previous frames 319 .
  • step 321 it is e.g. possible to render the synthesized reference image in step 321 by transforming the previously decoded frame (step 319) into the frame to be decoded, guided by the decoded camera parameters CP (step 318) and the geometry in three-dimensional space (step 320 ).
  • step 323, 423, 523 the video stream processed according to the invention can be decoded by a standard video encoder and output as a decoded video stream 324, 424, 524.
  • the decoder should be synchronous with the encoder in terms of settings, so that the decoder C uses the same settings (especially for depth determination, reference creation, etc.) as the encoder SRV.
  • the geometry in three-dimensional space can be estimated from raw video frames in step 405.
  • An (additional) bit stream 410.1 can be generated from the data, which, for example, is the subject of further processing, e.g. decimation, (lossless/lossy) compression and coding, which can be made available to the decoder C.
  • This bit stream 2.2 that has been made available can now also--as in the decoder C--be converted back in step 410.2 (to ensure the congruence of the data) and made available for processing in step 411.
  • the geometry in three-dimensional space can also be retained beyond a re-entry point.
  • the method also allows the geometry in the three-dimensional space to be continuously improved on the basis of previous and current frames.
  • This geometry in three-dimensional space can suitably be subject to further processing, eg decimation (e.g. mesh decimation), (lossy/lossy) compression/encoding.
  • the decoder C can receive and decode the bit stream 2.2 obtained in step 419.1 with the data relating to the geometry in three-dimensional space. The decoded geometry in three-dimensional space can then be used in step 420.
  • the decoder can obviously work faster in this variant, since the decoding requires less effort than the reconstruction of the geometry in three-dimensional space (FIG. 1).
  • FIG. 3 combines aspects of the embodiments of FIG. 1 and FIG. 2, spreading the complexity and allowing a flexible and efficient method.
  • the concept of the embodiment in Figure 3 differs from the embodiment in Figure 2 in that the geometry in three-dimensional space, i.e. the 3D data in step 510.1 roughly represents the original geometry in three-dimensional space, i.e. in a slimmed-down version, so that the required bit rate for this decreases.
  • Any suitable data reduction technique such as, but not limited to, sub-sampling, coarse quantization, transform coding, and dimensionality reduction, etc. can be used for this purpose.
  • the 3D data minimized in this way can be coded and made available to the decoder C as before in step 510.2.
  • the bitstream 510.1/510.2 may be subject to further processing, eg decimation, compression (lossless/lossy) and encoding, which may be provided to the decoder C.
  • This bit stream 2.2 that has been made available can now also--as in the decoder C--be converted back in step 510.3 (to ensure the congruence of the data) and made available for processing in step 511.
  • the previously encoded frames 509 and the camera parameters 506 can be used for finer processing of the 3D data.
  • the decoder C can receive the encoded and minimized 3D data in step 519.1 and decode them in step 519.2 and—corresponding to the encoder SRV—the processing can be made available.
  • the previously encoded frames 519.3 and camera parameters 518 can be used for finer processing of the 3D data.
  • a video stream VB is obtained from the encoder SRV, e.g., a streaming server, in a first step 315, 415, 515.
  • the client C decodes the received video stream VB using camera parameters CP and geometry data GD, and then reproduces this as a prepared video stream AVB in step 324, 424, 524.
  • the camera parameters CP can be obtained from the encoder SRV in step 317, 417, 517 (e.g. as bitstream 2.1) or can be determined from the obtained video stream VB.
  • geometry data GD can be obtained from the encoder SRV (e.g. as bitstream 2.2) or determined from the obtained video stream VB.
  • the decoder C before receiving the video stream VB, the decoder C signals the coder SRV that it is able to process it.
  • a set of processing options can also be supplied so that the coder can provide the appropriate format.
  • the format made available can have a corresponding coding with regard to setting data.
  • the geometry data includes depth data.
  • a 3D reconstruction is used both on the encoder and on the decoder side.
  • a 3D reconstruction is carried out only by the encoder and made available to the decoder. This means that the decoder does not have to carry out a 3D reconstruction, but can use the 3D geometry data provided by the encoder. Estimating the 3D geometry data on the part of the coder is usually easier than on the part of the decoder.
  • the configuration according to FIG. 2 is advantageous in particular when the computing power is limited on the part of the decoder.
  • a 3D reconstruction is carried out by the coder and made available to the decoder. However, only a rough version of the 3D geometry data is provided here. This allows the bit rate for the 3D geometry data to be reduced.
  • the decoder now has to complete/postprocess the 3D geometry data (refine).
  • the choice of method can be negotiated between the encoder and the decoder. This can be done, for example, on the basis of previous knowledge (e.g. computing power) or via a control/return channel (adaptive) in order to also take changes in the transmission capacity into account, for example.
  • the configuration according to FIG. 2 will generally be preferred.
  • the invention can therefore also be embodied in computer program products for setting up a data processing system for carrying out a method.
  • this "to-be-encoded frame” can be coded using intra-prediction or inter-prediction tools.
  • a group of pictures English Group of Pictures - abbreviated GOP
  • 16th frame ie frame with order number 0, 16, 32, ...
  • Intra- prediction tools one would use inter-prediction tools to do this.
  • the frames to be encoded by means of inter-prediction tools i.e. in the example frames 1-15, 17-31, 33-47, ... , ... .
  • inter-prediction tools use temporal similarities between consecutive frames. If a block of a frame to be encoded is similar to any frame in the previously encoded frame (e.g. due to relative motion), then instead of re-encoding this block, this already encoded block can simply be referred to. This process can be referred to as motion compensation. For this purpose, a new list of previously encoded frames is used for each frame, which can be used as a reference for the motion compensation. This list is also referred to as a reference picture list.
  • the Coders divide the frame to be encoded into a few non-overlapping blocks, and then the block thus created can be compared with previously encoded blocks according to the corresponding listing to find a high - preferably best - match
  • the relative 2D position of each block found i.e. the motion vector
  • the difference between the created block and the found block i.e. the residual signal
  • At least one novel reference image is created based on 3D information and added to this list of reference images or inserted instead of an existing reference image.
  • the camera parameters CP for a single (monocular) camera and geometry data GD for the 3D scenes are created from a set of 2D images, which were captured by the moving monocular camera.
  • a new type of reference image based on 3D information for frames to be encoded is created, eg by distorting the content of conventional reference images to the position of the image to be encoded.
  • This warping process is guided by the established/estimated camera parameters CP and for the 3D scenes geometry geometry data GD.
  • the novel reference image thus synthesized is created based on 3D information and added to this reference image list.
  • the novel reference picture created in this way allowed improved performance with regard to motion compensation, ie requires a lower bit rate than conventional reference pictures in the reference picture list. In this way, the bit rate required at the end can also be reduced and the coding gain can be increased.
  • R3D is found 20%-30% of the time while RI or R2 is found in the rest of the cases.
  • This information which reference picture is used for which block, can be fed into the video bit stream.
  • the decoder can then simply read this information and create the novel reference image based on 3D information at least for these regions, i.e. not for the entire area. That is, unlike the coder, it may be sufficient for the documenter if only the used part of the R3D reference is created for the inter-prediction, while it is not necessary to create the other parts of the R3D reference as well.
  • frames have a different contribution to the final bit rate, based on their order and position in the encoder structure used.
  • FIG. 5 The circles represent frames with the rendering order.
  • the arrows indicate the conventionally generated reference images that can be used for motion compensation.
  • the frame can use F M Fi and Fi +S as a reference.
  • the frame Fi +g uses, for example, Fi and F M6 as reference images, but they are further apart.
  • the encoder could be (more than) twice as fast.
  • a flag reduced / not reduced
  • the camera parameters CP and for the 3D scene geometry geometry data GD can be made available not just once but repeatedly, individually or in combination, from the encoder to the decoder. A new sentence as well as an update can be made available.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The invention relates to a method for playback of a video stream by a client (C), wherein the video stream has frames from exactly one camera in relation to an object moving relative thereto, from different positions, the method comprising the steps of • receiving a video stream (VB) from an encoder (SRV), • decoding the received video stream (VB) using camera parameters (CP) and geometry data (GD), • playing back the processed video stream (AVB).

Description

Verfahren zur Wiedergabe eines Videostreams durch einen Client Method for playing a video stream by a client
Hintergrund background
Die digitale Kodierung von Videosignalen ist in der gegenwärtigen Zeit in vielen Formen zu finden. So werden z.B. digitale Videoströme auf Datenträgern, wie z.B. DVDs, Blu-ray oder als Download bzw. Videostream (z.B. auch für Videokommunikation) zur Verfügung gestellt. Dabei ist es Ziel der Videokodierung nicht nur Repräsentanzen der zu übermittelnden Bilder zu versenden, sondern gleichzeitig auch den Datenverbrauch gering zu halten. Dies erlaubt zum einen auf speicherplatzbeschränkten Medien wie z.B. DVDs mehr Inhalt zu speichern oder aber mehreren Verwendern den gleichzeitigen Transport von (unterschiedlichen) Videostreams zu ermöglichen. The digital encoding of video signals is found in many forms in the present day. For example, digital video streams are made available on data carriers such as DVDs, Blu-ray or as a download or video stream (e.g. also for video communication). The aim of video coding is not only to send representations of the images to be transmitted, but also to keep data consumption low at the same time. On the one hand, this allows more content to be stored on media with limited storage space, such as DVDs, or to enable several users to transport (different) video streams at the same time.
Dabei wird zwischen verlustloser und verlustbehafteter Kodierung unterschieden. A distinction is made between lossless and lossy coding.
Allen Ansätzen gemein ist, dass aus zuvor übertragenen Bildern Information für nachfolgende Bilder vorherbestimmt wird. What all approaches have in common is that information for subsequent images is predetermined from previously transmitted images.
Gegenwärtige Analysen gehen davon aus, dass der Anteil solcher kodierten Videosignale im Jahr 2022 einen Anteil von 82 % des gesamten Netzwerkverkehrs (gegenüber 75 % im Jahr 2017) ausmachen wird, siehe Cisco Visual Networking Index: Forecast and trends, 2017-2022 (white paper), Cisco, Feb. 2019. Current analysis estimates that such encoded video will account for 82% of all network traffic by 2022 (up from 75% in 2017), see Cisco Visual Networking Index: Forecast and trends, 2017-2022 (white paper ), Cisco, Feb 2019.
Hieraus wird ersichtlich, dass jegliche Einsparung, die hier erreicht werden kann, zu einer großen Einsparung an Datenvolumen und damit zu einer Einsparung an elektrischer Energie für den Transport führen wird. From this it can be seen that any savings that can be achieved here will lead to a large saving in data volume and thus a saving in electrical energy for transport.
In aller Regel wird ein Kodierer, ein Trägermedium, z.B. ein Übertragungskanal, und ein Dekodierer benötigt. Der Kodierer verarbeitet rohe Videodaten. Dabei wird in aller Regel ein einzelnes Bild als Frame bezeichnet. Wiederum kann ein Frame als eine Ansammlung von Pixeln verstanden werden. Ein Pixel repräsentiert dabei einen Punkt im Frame und gibt seinen Farbwert und / oder seine Helligkeit an. Dabei kann z.B. die Datenmenge für einen nachfolgenden Frame reduziert werden, wenn bereits ein Großteil der Information in einem oder mehreren zuvor kodierten Frame(s) enthalten ist/sind. Dann wäre es z.B. ausreichend, wenn nur die Differenz übermittelt wird. Dabei macht man sich die Erkenntnis zu nütze, dass in aufeinanderfolgenden Frames häufig viele gleiche Inhalte zu sehen sind. Dies ist z.B. dann der Fall, wenn eine Kamera eine bestimmte Szene aus einem Blickwinkel erfasst und sich nur wenige Dinge ändern, oder wenn sich eine Kamera langsam durch die Szene bewegt oder dreht (Translation und/oder affine Bewegung der Kamera). As a rule, a coder, a carrier medium, eg a transmission channel, and a decoder are required. The encoder processes raw video data. As a rule, a single image is referred to as a frame. Again, a frame can be thought of as a collection of pixels. A pixel represents a point in the frame and indicates its color value and/or its brightness. In this way, for example, the amount of data for a subsequent frame can be reduced if a large part of the information is/are already contained in one or more previously encoded frame(s). Then it would be sufficient, for example, if only the difference is transmitted. In doing so, one makes use of the knowledge that a lot of the same content can often be seen in consecutive frames. This is the case, for example, when a camera captures a particular scene from one point of view and only a few things change, or when a camera slowly moves or rotates through the scene (translation and/or affine movement of the camera).
Dieses Konzept stößt jedoch dann an seine Grenzen, wenn sich ein hoher Anteil zwischen Frames ändert, wie es z.B. bei einer (schnellen) Bewegung der Kamera innerhalb einer Szene bzw. einer Bewegung von Objekten innerhalb der Szene auftritt. In diesem Fall könnte im schlimmsten Fall jegliches Pixel zweier Frames verschieden sein. However, this concept reaches its limits when a high proportion changes between frames, e.g. when the camera moves (rapidly) within a scene or when objects move within the scene. In this case, in the worst case, every pixel of two frames could be different.
Aus dem Stand der Technik, beispielsweise aus der europäischen Patentanmeldung EP 2 541 943 Al, sind Verfahren für Mehrkamerasysteme bekannt. Allerdings sind diese Mehrkamerasysteme darauf ausgelegt, dass ein vorher bekanntes Setup von Kameras mit vorbekannten Parametern verwendet wird. Methods for multi-camera systems are known from the prior art, for example from European patent application EP 2 541 943 A1. However, these multi-camera systems are designed to use a previously known setup of cameras with previously known parameters.
Wird jedoch eine Kamera, d.h. ein monokulares Aufnahmesystem, verwendet, so ergibt sich ein völlig anderes Anforderungsprofil. In vielen Bereichen, z.B. bim autonomen Fahren, bei Drohnen, bei Sozial Media Videoaufnahmen, oder auch bei Body-Cams oder Action-Cams, wird hingegen in aller Regel nur eine einzige Kamera verwendet. Aber gerade hier ist es notwendig sowohl den verwendeten Speicherplatz und/oder eine zu übertragende Datenmenge klein zu halten. However, if a camera, i.e. a monocular recording system, is used, a completely different requirement profile results. In many areas, e.g. in autonomous driving, in drones, in social media video recordings, or even in body cams or action cams, only a single camera is usually used. But it is precisely here that it is necessary to keep the storage space used and/or the amount of data to be transmitted small.
Aufgabe task
Ausgehend hiervon ist es eine Aufgabe der Erfindung eine Verbesserung für Einkamera-System bereitzustellen. Proceeding from this, it is an object of the invention to provide an improvement for a single-camera system.
Kurzdarstellung der Erfindung Die Aufgabe wird gelöst durch ein Verfahren nach Anspruch 1. Weitere vorteilhafte Ausgestaltungen sind Gegenstand der abhängigen Ansprüche, der Beschreibung und der Figuren. Summary of the Invention The object is achieved by a method according to claim 1. Further advantageous configurations are the subject matter of the dependent claims, the description and the figures.
Kurdarstellung der Figuren Curated representation of the characters
Fig. 1 zeigt schematische Ablaufpläne gemäß Aspekten der Erfindung, 1 shows schematic flow charts according to aspects of the invention,
Fig. 2 zeigt schematische Ablaufpläne gemäß weiteren Aspekten der Erfindung, 2 shows schematic flow charts according to further aspects of the invention,
Fig. 3 zeigt schematische Ablaufpläne gemäß weiteren Aspekten der Erfindung, 3 shows schematic flow charts according to further aspects of the invention,
Fig. 4 zeigt eine schematische Darstellung zur Erläuterung von konzeptionellen Fragen, und Fig. 5 zeigt eine beispielhafte Relation von Frames gemäß weiteren Aspekten der Erfindung. FIG. 4 shows a schematic representation for explaining conceptual issues, and FIG. 5 shows an exemplary relation of frames according to further aspects of the invention.
Ausführliche Darstellung der Erfindung Detailed presentation of the invention
Nachfolgend wird die Erfindung eingehender unter Bezugnahme auf die Figuren dargestellt werden. Dabei ist anzumerken, dass unterschiedliche Aspekte beschrieben werden, die jeweils einzeln oder in Kombination zum Einsatz kommen können. D.h. jeglicher Aspekt kann mit unterschiedlichen Ausführungsformen der Erfindung verwendet werden, soweit nicht explizit als reine Alternative dargestellt. In the following the invention will be illustrated in more detail with reference to the figures. It should be noted that different aspects are described, which can be used individually or in combination. That is, each aspect can be used with different embodiments of the invention, unless explicitly presented as purely alternative.
Weiterhin wird nachfolgend der Einfachheit halber in aller Regel immer nur auf eine Entität Bezug genommen werden. Soweit nicht explizit vermerkt, kann die Erfindung aber auch jeweils mehrere der betroffenen Entitäten aufweisen. Insofern ist die Verwendung der Wörter „ein", „eine" und „eines" nur als Hinweis darauf zu verstehen, dass in einer einfachen Ausführungsform zumindest eine Entität verwendet wird. Furthermore, for the sake of simplicity, only one entity will generally be referred to below. Unless explicitly noted, however, the invention can also have several of the entities concerned. In this respect, the use of the words “a”, “an” and “an” is only to be understood as an indication that at least one entity is used in a simple embodiment.
Soweit nachfolgend Verfahren beschrieben werden, sind die einzelnen Schritte eines Verfahrens in beliebiger Reihenfolge anordbar und/oder kombinierbar, soweit sich durch den Zusammenhang nicht explizit etwas Abweichendes ergibt. Weiterhin sind die Verfahren - soweit nicht ausdrücklich anderweitig gekennzeichnet - untereinander kombinierbar. Insofar as methods are described below, the individual steps of a method can be arranged and/or combined in any order, unless something different is explicitly stated in the context. Furthermore, the processes can be combined with one another, unless expressly stated otherwise.
Nachfolgend werden wir auf verschiedene Aspekte der Erfindung im Zusammenhang mit einem vollständigen System aus Kodierer und Dekodierer eingehen. Fehler, die zwischen dem Kodieren und Dekodieren auftreten können, werden nachfolgend nicht beleuchtet, da sie für das Verständnis des (De-) Kodierens nicht relevant sind. ln den gängigen Videobereitstellungssystemen basiert der Kodierer auf Vorhersage/Prädiktion (engl. Prediction). D.h. je besser man einen zu kodierenden Frame aus einem vorher dekodierten Frame Vorhersagen kann, umso weniger Information (Bit(s)) muss übertragen werden. In the following we will discuss various aspects of the invention in the context of a complete system of encoder and decoder. Errors that can occur between encoding and decoding are not discussed below because they are not relevant to understanding the (de-)coding. In current video delivery systems, the encoder is based on prediction. This means that the better you can predict a frame to be coded from a previously decoded frame, the less information (bit(s)) has to be transmitted.
In den bisherigen Ansätzen wurde der Ansatz verfolgt, Frames auf Grund von Ähnlichkeiten zwischen den Frames in einem zweidimensionalen Modell vorherzusagen. In previous approaches, the approach followed was to predict frames based on similarities between the frames in a two-dimensional model.
Es ist jedoch festzustellen, dass die Aufzeichnung von Videos meistens im dreidimensionalen Raum stattfindet. However, it should be noted that the recording of videos mostly takes place in three-dimensional space.
Mit nun verfügbarer Rechenleistung Ist es möglich Tiefeninformation auf Seiten des Kodierers und/oder des Dekodierers zu ermitteln/abzuschätzen. With computing power now available, it is possible to determine/estimate depth information on the encoder and/or decoder side.
Daher kann innerhalb der Erfindung auch ein dreidimensionales Bewegungsmodell zur Verfügung gestellt werden. Ohne Beschränkung der Allgemeinheit der Erfindung ist es dabei möglich die Erfindung auch mit allen gegenwärtigen Video(de)kodierern einzusetzen soweit sie entsprechend aufgerüstet sind. Insbesondere kann der Erfindung Versatile Video Coding ITU-T H.266/ ISO/IEC 23090- 3 hinzugefügt werden. A three-dimensional motion model can therefore also be made available within the invention. Without restricting the generality of the invention, it is also possible to use the invention with all current video (de)coders as long as they are upgraded accordingly. In particular, Versatile Video Coding ITU-T H.266/ISO/IEC 23090-3 can be added to the invention.
Dabei basiert die Erfindung auf der Idee der bewegungskompensierenden Vorhersage (engl. Motion- compensated prediction). Um dies zu motivieren verweisen wir nachfolgend auf Figur 4. Dabei wird ein Video aus (aufeinanderfolgenden) kodierten Bildern von zweidimensionalen Frames (d.h. eine Sequenz) betrachtet. Ein Frame wird dabei auch als zweidimensionale Repräsentation bezeichnet. Aufgrund der zeitlichen Redundanz zwischen aufeinanderfolgenden Frames kann ein zu (kodierender) Frame zum Zeitpunkt t aus zuvor (t-1, t-2 ... (dargestellt t-4) ohne auf vier vorhergehende Frames beschränkt zu sein) kodierten Frames vorhergesagt werden. Diese vorhergehenden Frames werden auch als Referenz (Referenzframes, Referenzbilder) bezeichnet. Es sei dabei angemerkt, dass hier die Framereihenfolge nicht notwendigerweise eine zeitliche Reihenfolge sein muss, sondern dass die dargestellte Reihenfolge und die (de)kodierte Reihenfolge unterschiedlich sein kann. D.h. für das (De- )Kodieren können nicht nur Informationen aus zeitlich vorher liegenden Frames, sondern auch Informationen aus zeitlich nachfolgenden (in der Darstellung / zeitlichen Abfolge zukünftigen) Frames verwendet werden, Falls die bewegungskompensierte Vorhersage präzise genug ist, reicht es aus nur den Unterschied zwischen der Vorhersage und dem zu kodierenden Frame, den sogenannten Vorhersagefehler (engl. prediction error) zu übertragen. Je besser die Vorhersage ist, umso weniger Vorhersagefehler müssen übermittelt werden, d.h. umso weniger Daten müssen zwischen Kodierer und Dekodierer übermittelt bzw. gespeichert werden. The invention is based on the idea of motion-compensated prediction. To motivate this, we refer to Figure 4 below. Here, a video consisting of (consecutive) encoded images of two-dimensional frames (ie a sequence) is viewed. A frame is also referred to as a two-dimensional representation. Due to the temporal redundancy between consecutive frames, a frame to be (encoded) at time t can be predicted from previously (t-1, t-2 ... (shown t-4) without being limited to four previous frames) encoded frames. These preceding frames are also referred to as reference (reference frames, reference images). It should be noted here that the frame order does not necessarily have to be a chronological order, but that the order shown and the (de)coded order can be different. This means that not only information from chronologically preceding frames, but also information from chronologically following frames (in the representation / chronological sequence future) can be used for the (de-)coding, If the motion-compensated prediction is precise enough, it is sufficient to transmit only the difference between the prediction and the frame to be coded, the so-called prediction error. The better the prediction, the fewer prediction errors have to be transmitted, ie the less data has to be transmitted or stored between encoder and decoder.
D.h., aus Sicht des Kodierers steigt die Effizienz. That is, from the coder's point of view, efficiency increases.
Die herkömmlichen Kodierer basieren auf der Ähnlichkeit von Frames in einem zweidimensionalen Modell, d.h. lediglich Translationen und/oder affine Bewegungen werden in Betracht gezogen. Es gibt jedoch eine Reihe von Bewegungen, die nicht einfach als 2D-Modell ausgedrückt werden können.The conventional encoders are based on the similarity of frames in a two-dimensional model, i.e. only translations and/or affine movements are considered. However, there are a number of movements that cannot be easily expressed as a 2D model.
Daher verwendet diese Erfindung einen Ansatz der auf der dreidimensionalen Umgebung basiert, in dem die Sequenz erfasst ist und hieraus ein 3D-Bewegungsmodell darstellbar wird. Therefore, this invention uses an approach based on the three-dimensional environment in which the sequence is recorded and from which a 3D motion model can be displayed.
Praktisch gesehen ist die Videoaufnahme analog zur Projektion einer dreidimensionalen Szene in die zweidimensionale Ebene der Kamera. Da jedoch bei der Projektion die Tiefeninformation verloren geht, ermöglicht die Erfindung eine anderweitige Bereitstellung. In practical terms, video recording is analogous to projecting a three-dimensional scene into the camera's two-dimensional plane. However, since the depth information is lost during the projection, the invention enables a different provision.
Im Beispiel des Ablaufplanes nach Figur 1 wird auf Seiten des Dekodierers die 3D-lnformation rekonstruiert, während im Beispiel des Ablaufplanes nach Figur 2 der Kodierer die 3D-lnformation (komprimiert) zur Verfügung stellt und der Dekodierer sie lediglich verwendet. Im Beispiel des Ablaufplanes nach Figur 3 wird eine Mischform zur Verfügung gestellt, bei der der Kodierer die (grobe) 3D-lnformation (komprimiert) zur Verfügung stellt, und der Dekodierer die 3D-lnformation weiter aufbereitet, um sie zu verbessern. In the example of the flow chart according to FIG. 1, the 3D information is reconstructed on the decoder side, while in the example of the flow chart according to FIG. 2 the coder makes the 3D information available (compressed) and the decoder only uses it. In the flowchart example of Figure 3, a mixed form is provided in which the encoder provides the (coarse) 3D information (compressed) and the decoder further processes the 3D information to improve it.
Es ist offensichtlich, dass im ersten Fall die notwendige Bandbreite / Speicherkapazität geringer sein kann als im zweiten oder dritten Fall. Andererseits sind die Anforderungen an die Rechenleistung im ersten Fall für den Kodierer und den Dekodierer hoch, während im zweiten Fall die Anforderungen an die Rechenleistung für den Dekodierer geringer und für den Kodierer am höchsten sind. D.h. auf Basis der zur Verfügung stehenden Möglichkeiten können unterschiedliche Szenarien bedient werden. Insbesondere bei einer Abfrage nach einem Videostrom kann es daher vorgesehen sein, dass z.B. ein Dekodierer seine Eigenschaften dem Kodierer bekannt macht, sodass der Kodierer unter Umständen auf die Bereitstellung von (präziser) 3D-lnformation verzichten kann, weil der Dekodierer ein Verfahren nach Figur 1 oder 3 zur Verfügung stellt. It is obvious that in the first case the required bandwidth/storage capacity can be less than in the second or third case. On the other hand, in the first case, the demands on the computing power for the encoder and the decoder are high, while in the second case, the demands on the computing power are lower for the decoder and highest for the encoder. This means that different scenarios can be operated on the basis of the options available. In particular in the case of a query for a video stream, provision can therefore be made for a decoder, for example, to make its properties known to the coder, so that the coder may can do without the provision of (more precise) 3D information because the decoder provides a method according to FIG. 1 or 3.
Nachfolgend gehen wir davon aus, dass die Kamera irgendeine Kamera ist und nicht auf einen bestimmten Typ festgelegt ist. In the following we assume that the camera is any camera and is not fixed to a specific type.
Im Folgenden wird auf eine monokulare Kamera mit unbekannten Kameraparametern als schwierigster Anwendungsfall Bezug genommen werden, ohne jedoch hierdurch die Verwendung anderer Kameratypen, wie. z.B. Lichtfeld, Stereokamera, etc. auszuschließen. In the following, reference will be made to a monocular camera with unknown camera parameters as the most difficult application, but without using other types of cameras, such as. e.g. light field, stereo camera, etc.
Dabei kann auf die Kameraparameter CP und Geometrie-Daten GD geschlossen werden. Auf die Kameraparameter CP kann z.B. durch Verfahren wie Structure from Motion, Simultaneous Localization and Mapping oder Sensoren geschlossen werden. In this way, the camera parameters CP and geometry data GD can be inferred. The camera parameters CP can be inferred, for example, by methods such as Structure from Motion, Simultaneous Localization and Mapping or sensors.
Sind solche Daten durch bestimmte Kameratypen, z.B. Stereokameras und/oder durch zusätzliche Sensoren, wie z.B. LIDAR-Sensoren, Gyroskope, etc. bekannt, so können diese alternativ oder zusätzlich übermittelt oder verarbeitet werden und somit den Rechenaufwand vermindern oder obsolet machen. Die Kameraparameter CP können typischerweise aus Sensordaten von Gyroskopen, inertiale Messeinheit (englisch inertial measurement unit, IMU), Ortsdaten eines Global Positioning System (GPS), etc. ermittelt werden, während Geometrie-Daten GD aus Sensordaten eines LIDAR- Sensors, Stereokameras, Tiefensensoren, Lichtfeldsensoren, etc. ermittelt werden. Stehen sowohl Kameraparameter CP und Geometrie-Daten GD zur Verfügung wird die (de-)Kodierung einfacher und in der Regel qualitativ besser. If such data are known from certain camera types, e.g. stereo cameras and/or additional sensors, such as LIDAR sensors, gyroscopes, etc., these can be transmitted or processed as an alternative or in addition, thus reducing the computing effort or making it obsolete. The camera parameters CP can typically be determined from sensor data from gyroscopes, inertial measurement units (IMU), location data from a global positioning system (GPS), etc., while geometry data GD from sensor data from a LIDAR sensor, stereo cameras, depth sensors , light field sensors, etc. are determined. If both camera parameters CP and geometry data GD are available, the (de-)coding becomes easier and usually of better quality.
Der Kodierer SRV kann z.B. ein herkömmliches Videosignal Input Video in Schritt 301 erhalten. Vorteilhafterweise kann dieses Videosignal auf Bewegung, d.h. eine Relativbewegung der Kamera überwacht werden. Wird eine Relativbewegung der Kamera erkannt, so kann das Eingangsvideosignal Input Video einer erfindungsgemäßen Kodierung unterzogen werden, andernfalls, wenn keine Relativbewegung der Kamera erkannt wird, kann das Signal wie bisher einer üblichen Kodierung unterzogen werden und wie in Schritt 303, 403, 503 angedeutet dem Dekodierer C zur Verfügung gestellt werden. Eine Kamerabewegung kann in Ausführungsformen seitens des Kodierers z.B. durch visuelle Datenverarbeitung des Videosignals und/oder durch Sensoren, wie z.B. ein IMU (Inertial Measurement Unit), ein GPS (Global Positioning System), etc. erkannt werden. The encoder SRV can receive a conventional video signal Input Video in step 301, for example. This video signal can advantageously be monitored for movement, ie relative movement of the camera. If a relative movement of the camera is detected, the input video signal Input Video can be subjected to a coding according to the invention, otherwise, if no relative movement of the camera is detected, the signal can be subjected to a usual coding as before and as indicated in step 303, 403, 503 the Decoder C are provided. In embodiments, camera movement can be detected by the encoder, for example by visual data processing of the video signal and/or by sensors such as an IMU (Inertial Measurement Unit), a GPS (Global Positioning System), etc.
Wird hingegen eine Bewegung erkannt, so kann ein entsprechendes Flag Flag_3D oder eine andere Signalisierung verwendet werden, um das Vorhandensein von erfindungsgemäßem Inhalt gemäß Schritt 304, 404, 504 zu signalisieren, sollte er nicht aus dem Datenstrom bereits an sich erkennbar sein. If, on the other hand, a movement is detected, a corresponding flag Flag_3D or other signaling can be used to signal the presence of inventive content according to step 304, 404, 504 if it is not already per se recognizable from the data stream.
Wird eine Kamerabewegung festgestellt, können wie in Schritt 305, 405, 505 angedeutet die (intrinsischen und extrinsischen) Kameraparameter CP in Schritt 306, 406, 506 abgeschätzt / bestimmt werden. If camera movement is detected, the (intrinsic and extrinsic) camera parameters CP can be estimated/determined in step 306, 406, 506, as indicated in step 305, 405, 505.
Hierzu können Techniken wie z.B. visuelle Datenverarbeitung, wie z.B. Structure-from-Motion (SfM), Simultaneous Localization and Mapping (SLAM), Visual Odometry (V.O.), oder jedes andere geeignete Verfahren verwendet werden. For this, techniques such as visual data processing such as Structure-from-Motion (SfM), Simultaneous Localization and Mapping (SLAM), Visual Odometry (V.O.), or any other suitable method can be used.
Die Kameraparameter CP können natürlich auch durch andere Sensoren abgeschätzt / bestimmt / als bekannter Wert übernommen werden. The camera parameters CP can of course also be estimated/determined/taken over as a known value by other sensors.
Ohne Beschränkung der Allgemeinheit der Erfindung können diese Kameraparameter CP in Schritt 307, 407, 507 verarbeitet und kodiert werden und getrennt oder eingebettet in den Videostream VB dem Dekodierer C zur Verfügung gestellt werden. Without restricting the generality of the invention, these camera parameters CP can be processed and encoded in step 307, 407, 507 and made available to the decoder C separately or embedded in the video stream VB.
Die Geometrie im dreidimensionalen Raum kann in Schritt 310, 410, 510 abgeschätzt / bestimmt werden. Insbesondere kann in Schritt 310 die Geometrie im dreidimensionalen Raum aus einem oder mehreren zuvor kodierten Frames (Schritt 309) abgeschätzt werden. Hierzu können die zuvor ermittelten Kameraparameter CP in Schritt 308 einfließen. In den Ausführungsformen der Figuren 2 und 3 können die 3D Geometriedaten aus „rohen" Daten abgeschätzt / bestimmt werden. In der Ausführungsform der Figur 1 können diese Daten aus den kodierten Daten abgeschätzt / bestimmt werden. Typischerweise wird die visuelle Qualität in den Ausführungsformen der Figur 2 und 3 besser sein als in der Ausführungsform der Figur 1, sodass diese Ausführungsformen höherwertige 3D Geometriedaten bereitstellen können. Um die Geometrie im dreidimensionalen Raum abzuschätzen kann man sogenannte Multi-View Computer Vision Techniken verwenden, ohne hierdurch die Verwendung anderer Techniken, wie z.B. eventuell vorhandene Tiefensensoren, wie z.B. LiDAR, oder andere Bildsensoren, die eine Tiefenerkennung erlauben, wie z.B. Stereokameras, RGB+D Sensoren, Lichtfeldsensoren, etc. auszuschließen. The geometry in three-dimensional space can be estimated/determined in step 310, 410, 510. In particular, in step 310, the geometry in three-dimensional space can be estimated from one or more previously encoded frames (step 309). The previously determined camera parameters CP can be included in step 308 for this purpose. In the embodiments of Figures 2 and 3, the 3D geometry data can be estimated/determined from "raw" data. In the embodiment of Figure 1, this data can be estimated/determined from the encoded data. Typically, the visual quality in the embodiments of the figure 2 and 3 can be better than in the embodiment of FIG. 1, so that these embodiments can provide higher-quality 3D geometry data. In order to estimate the geometry in three-dimensional space, so-called multi-view computer vision techniques can be used without using other techniques, such as any existing depth sensors, such as LiDAR, or other image sensors that allow depth detection, such as stereo cameras, RGB+ D sensors, light field sensors, etc. to exclude.
Die so ermittelte Geometrie im dreidimensionalen Raum kann durch eine geeignete Datenstruktur, z.B. ein 3D Modell, ein 3D-Netz, 2D-Tiefenkarten, Punktwolken (dünnbesetzt oder dicht), etc. repräsentiert sein. The geometry determined in this way in three-dimensional space can be represented by a suitable data structure, e.g. a 3D model, a 3D mesh, 2D depth maps, point clouds (sparse or dense), etc.
Nunmehr kann das Videosignal VB auf Basis der ermittelten Geometrie im drei-dimensionalen Raum in Schritt 312, 412, 512 kodiert werden. The video signal VB can now be encoded in the three-dimensional space in steps 312, 412, 512 on the basis of the determined geometry.
Dabei kann nun das neuartige bewegungsbasierte Modell auf die reproduzierte dreidimensionale Information angewendet werden. The novel motion-based model can now be applied to the reproduced three-dimensional information.
Hierzu kann beispielsweise ein Referenzbild in Schritt 311 bestimmt / gewählt sein. Dies kann dann dem Standard Video Kodierer in Schritt 312 präsentiert werden. For example, a reference image can be determined/selected in step 311 for this purpose. This can then be presented to the standard video encoder in step 312.
Offensichtlich kann die nun folgende Kodierung auf einen, mehrere oder alle Frames einer vorbestimmten Menge verwendet werden. Entsprechender Weise kann natürlich auch die Kodierung sich auf einen, mehrere oder alle vorherigen Frames einer vorbestimmten Menge stützen. Obviously, the encoding that follows can be applied to one, several or all frames of a predetermined set. Correspondingly, of course, the coding can also be based on one, several or all previous frames of a predetermined set.
Es kann auch vorgesehen sein, dass der Kodierer SRV nur einige räumliche Gebiete innerhalb eines Frames in der vorgegebenen erfindungsgemäßen Weise verarbeitet und andere in herkömmlicher Weise. Provision can also be made for the coder SRV to process only some spatial regions within a frame in the specified manner according to the invention and others in a conventional manner.
Wie bereits ausgeführt, kann ein Standard Video Kodierer verwendet werden. Dabei kann eine zusätzliche Referenz zur Liste der Referenzbilder (in Schritt 311) hinzugefügt werden oder aber ein bestehendes Referenzbild ersetzt werden. Ebenso kann wie bereits angedeutet nur ein bestimmter Raumbereich mit der neuen Referenz überschrieben sein. Hierdurch kann der Standard-Videokodierer in die Lage versetzt werden eigenständig auf Basis der vorhandenen Referenzbilder das Referenzbild auszusuchen, dass eine günstige Eigenschaft besitzt, z.B. eine hohe Kompression bei geringen Verfälschungen (rate-distortion optimization). As already stated, a standard video encoder can be used. An additional reference can be added to the list of reference images (in step 311) or an existing reference image can be replaced. Likewise, as already indicated, only a specific spatial area can be overwritten with the new reference. In this way, the standard video coder can be enabled to independently select, on the basis of the available reference images, the reference image that has a favorable property, for example high compression with low distortions (rate-distortion optimization).
So kann der Standard-Videokodierer unter Verwendung der synthetisierten Referenz den Videostrom kodieren und in Schritt 313, 413, 513 dem Dekodierer C zur Verfügung stellen. The standard video encoder can thus encode the video stream using the synthesized reference and make it available to the decoder C in step 313, 413, 513.
Wie in bisherigen Verfahren auch, kann der Kodierer SRV an entsprechenden Wiedereinstiegspunkte erneut mit einer Erkennung gemäß Schritt 301 beginnen und das Verfahren erneut durchlaufen. As in previous methods, the coder SRV can start again at corresponding re-entry points with a recognition according to step 301 and run through the method again.
Wiedereinstiegspunkte können zu festgesetzten Zeitintervallen, auf Basis von Kanaleigenschaften, der Bildrate des Videos, der Anwendung etc. gesetzt werden. Respawn points can be set at set time intervals based on channel characteristics, video frame rate, application, etc.
Dabei kann die 3D-Geometrie im dreidimensionalen Raum jeweils neu rekonstruiert werden oder eine bestehende weiterentwickeln. Die 3D-Geometrie wächst mit zunehmend neuen Frames weiter an bis sie beim nächsten Wiedereinstiegspunkt neugestartet wird. The 3D geometry can be reconstructed in three-dimensional space or an existing one can be further developed. The 3D geometry will continue to grow as new frames are added until it restarts at the next respawn point.
In entsprechender Weise kann auf der Dekoderseite C agiert werden, wobei in den Figuren 1 bis 3 Kodierer SRV und Dekodierer C in ihren funktional entsprechenden Komponenten auf horizontal etwa gleicher Höhe angeordnet sind. The decoder side C can be operated in a corresponding manner, with the coder SRV and decoder C in FIGS. 1 to 3 being arranged horizontally at approximately the same height in their functionally corresponding components.
So kann der Dekodierer C zunächst überprüfen, ob ein entsprechendes Flag Flag_3D oder eine andere Signalisierung verwendet wurde. The decoder C can first check whether a corresponding flag Flag_3D or another signaling was used.
Ist eine solche Signalisierung (Flag_3D ist z.B. 0) nicht vorhanden, so kann der Videostream standardmäßig behandelt in Schritt 316 behandelt werden. Andernfalls kann der Videostream in der neuen erfindungsgemäßen Art und Weise behandelt werden. If such a signaling (Flag_3D is e.g. 0) is not present, the video stream can be treated in step 316 by default. Otherwise the video stream can be treated in the new inventive way.
Zunächst können Kameraparameter CP in Schritt 317, 417, 517 erhalten werden. Die erhaltenen Kameraparameter CP können in optionalen Schritten 318 verarbeitet und / oder dekodiert werden. Diese Kameraparameter CP können z.B. für eine Tiefenschätzung als auch für die Erzeugung der Geometrie im dreidimensionalen Raum in Schritt 320 auf Basis von vorhergehenden Frames 319 genutzt werden. First, camera parameters CP can be obtained in steps 317, 417, 517. The obtained camera parameters CP can be processed and/or decoded in optional steps 318 . These camera parameters CP can be used, for example, for a depth estimation as well as for generating the geometry in three-dimensional space in step 320 based on previous frames 319 .
Insgesamt kann dabei die gleiche Strategie in Bezug auf die Referenzbilder wie beim Kodierer (Schritte 309...312, 409...412, 509...512) in entsprechenden Schritten 319...332, 419...432, 519...532 Verwendung finden. Es ist z.B. möglich das synthetisierte Referenzbild in Schritt 321 zu rendern, indem man den zuvor dekodierten Frame (Schritt 319) in den zu-dekodierenden Frame umformt, unter Führung der dekodierten Kameraparameter CP (Schritt 318) und der Geometrie im dreidimensionalen Raum (Schritt 320). Overall, the same strategy with regard to the reference images as with the encoder (steps 309...312, 409...412, 509...512) can be used in corresponding steps 319...332, 419...432, 519 ...532 find use. It is e.g. possible to render the synthesized reference image in step 321 by transforming the previously decoded frame (step 319) into the frame to be decoded, guided by the decoded camera parameters CP (step 318) and the geometry in three-dimensional space (step 320 ).
Schließlich kann in Schritt 323, 423, 523 der erfindungsgemäß verarbeitete Videostream durch einen Standard-Videokodierer dekodiert werden und als dekodierter Videostream 324, 424, 524 zur Ausgabe gebracht werden. Finally, in step 323, 423, 523, the video stream processed according to the invention can be decoded by a standard video encoder and output as a decoded video stream 324, 424, 524.
Üblicherweise sollten dabei der Dekodierer mit dem Kodierer in Bezug auf die Einstellungen synchron sein, sodass der Dekodierer C die gleichen Einstellungen (insbesondere für die Tiefenbestimmung, Referenzerstellung, etc.) wie der Kodierer SRV verwendet. Usually, the decoder should be synchronous with the encoder in terms of settings, so that the decoder C uses the same settings (especially for depth determination, reference creation, etc.) as the encoder SRV.
In der Ausführungsform der Figur 2 kann im Unterschied zur Ausführungsform der Figur 1 die Geometrie im dreidimensionalen Raum aus rohen Videoframes in Schritt 405 abgeschätzt werden. Dabei kann aus den Daten ein (zusätzlicher) Bitstrom 410.1 erzeugt werden, der z.B. Gegenstand weitere Verarbeitung, z.B. Dezimierung, (verlustfreier/verlustbehafteter) Kompression und Kodierung ist, der an den Dekodierer C zur Verfügung gestellt werden kann. Dieser zur Verfügung gestellte Bitstrom 2.2 kann nun auch - wie im Dekodierer C - in Schritt 410.2 (zur Sicherstellung der Kongruenz der Daten) zurückgewandelt werden und der Verarbeitung in Schritt 411 zur Verfügung gestellt werden. In the embodiment of FIG. 2, in contrast to the embodiment of FIG. 1, the geometry in three-dimensional space can be estimated from raw video frames in step 405. An (additional) bit stream 410.1 can be generated from the data, which, for example, is the subject of further processing, e.g. decimation, (lossless/lossy) compression and coding, which can be made available to the decoder C. This bit stream 2.2 that has been made available can now also--as in the decoder C--be converted back in step 410.2 (to ensure the congruence of the data) and made available for processing in step 411.
Ebenso kann die Geometrie im dreidimensionalen Raum auch über einen Wiedereinstiegspunkt hinaus erhalten bleiben. Jedoch erlaubt das Verfahren auch die ständige Verbesserung der Geometrie im dreidimensionalen Raum auf Basis vorheriger und aktueller Frames. Diese Geometrie im dreidimensionalen Raum kann geeignet Gegenstand weitere Verarbeitung, z.B. Dezimierung (z.B. Mesh Decimation), (verlustfreier/verlustbehafteter) Kompression / Kodierung sein. In entsprechender Weise kann den Dekodierer C den in Schritt 419.1 erhaltenen Bitstrom 2.2 mit den Daten betreffend die Geometrie im dreidimensionalen Raum erhalten und dekodieren. Die dekodierte Geometrie im dreidimensionalen Raum kann dann in Schritt 420 verwendet werden. Likewise, the geometry in three-dimensional space can also be retained beyond a re-entry point. However, the method also allows the geometry in the three-dimensional space to be continuously improved on the basis of previous and current frames. This geometry in three-dimensional space can suitably be subject to further processing, eg decimation (e.g. mesh decimation), (lossy/lossy) compression/encoding. In a corresponding manner, the decoder C can receive and decode the bit stream 2.2 obtained in step 419.1 with the data relating to the geometry in three-dimensional space. The decoded geometry in three-dimensional space can then be used in step 420.
Offensichtlich kann der Dekodierer in dieser Variante schneller arbeiten, da die Dekodierung geringeren Aufwand als die Rekonstruktion der Geometrie im dreidimensionalen Raum (Figur 1) erfordert. The decoder can obviously work faster in this variant, since the decoding requires less effort than the reconstruction of the geometry in three-dimensional space (FIG. 1).
Während in der Ausführungsform der Figur 1 ein sehr effizientes Verfahren in Bezug auf die Bitratenreduktion vorgestellt wird, kann mit der Ausführungsform der Figure 2 eine geringere Bitratenreduktion erzielt werden, wofür aber die Komplexität auf Seiten des Dekodierers C sinkt. Die Ausführungsform der Figur 3 kombiniert Aspekte der Ausführungsformen der Figur 1 und Figur 2, verteilt die Komplexität und erlaubt ein flexibles und effizientes Verfahren. While a very efficient method with regard to the bit rate reduction is presented in the embodiment in FIG. 1, a smaller bit rate reduction can be achieved with the embodiment in FIG. The embodiment of FIG. 3 combines aspects of the embodiments of FIG. 1 and FIG. 2, spreading the complexity and allowing a flexible and efficient method.
Im Wesentlichen unterscheidet sich das Konzept der Ausführungsform der Figur 3 von der Ausführungsform der Figur 2 darin, dass die Geometrie im dreidimensionalen Raum, d.h. die 3D-Daten in Schritt 510.1 grob die ursprüngliche Geometrie im dreidimensionalen Raum repräsentieren, d.h. in abgespeckter Version, sodass die benötigte Bitrate hierfür sinkt. Hierfür kann jedes geeignete Verfahren zur Datenreduktion wie z.B. Unterabtastung (sub-sampling), grobe Quantisierung (coarse quantization), Transformationskodierung und Dimensionsreduktion, etc. verwendet werden, ohne hierauf beschränkt zu sein. Essentially, the concept of the embodiment in Figure 3 differs from the embodiment in Figure 2 in that the geometry in three-dimensional space, i.e. the 3D data in step 510.1 roughly represents the original geometry in three-dimensional space, i.e. in a slimmed-down version, so that the required bit rate for this decreases. Any suitable data reduction technique such as, but not limited to, sub-sampling, coarse quantization, transform coding, and dimensionality reduction, etc. can be used for this purpose.
Die so minimierten 3D Daten können wie zuvor in Schritt 510.2 kodiert und an den Dekodierer C zur Verfügung gestellt werden. Der Bitstrom 510.1/510.2 kann Gegenstand weiterer Verarbeitung, z.B. Dezimierung, (verlustfreier/verlustbehafteter) Kompression und Kodierung sein, die dem Dekodierer C zur Verfügung gestellt werden kann. Dieser zur Verfügung gestellte Bitstrom 2.2 kann nun auch - wie im Dekodierer C - in Schritt 510.3 (zur Sicherstellung der Kongruenz der Daten) zurückgewandelt werden und der Verarbeitung in Schritt 511 zur Verfügung gestellt werden. Dabei können die zuvor kodierten Frames 509 und die Kameraparameter 506 zur feineren Erarbeitung der 3D-Daten verwendet werden. Entsprechender Weise kann der Dekodierer C die kodierten und minimierten 3D-Daten in Schritt 519.1 erhalten und in Schritt 519.2 dekodieren und - entsprechend zum Kodierer SRV - der Verarbeitung zur Verfügung gestellt werden. Dabei können die zuvor kodierten Frames 519.3 und Kameraparameter 518 zur feineren Erarbeitung der 3D Daten verwendet werden. The 3D data minimized in this way can be coded and made available to the decoder C as before in step 510.2. The bitstream 510.1/510.2 may be subject to further processing, eg decimation, compression (lossless/lossy) and encoding, which may be provided to the decoder C. This bit stream 2.2 that has been made available can now also--as in the decoder C--be converted back in step 510.3 (to ensure the congruence of the data) and made available for processing in step 511. In this case, the previously encoded frames 509 and the camera parameters 506 can be used for finer processing of the 3D data. Correspondingly, the decoder C can receive the encoded and minimized 3D data in step 519.1 and decode them in step 519.2 and—corresponding to the encoder SRV—the processing can be made available. The previously encoded frames 519.3 and camera parameters 518 can be used for finer processing of the 3D data.
D.h. in allen Ausführungsformen des Dekodierers C wird ein Videostream VB vom Kodierer SRV, z.B. ein Streamingserver, In einem ersten Schritt 315, 415, 515 erhalten. That is, in all embodiments of the decoder C, a video stream VB is obtained from the encoder SRV, e.g., a streaming server, in a first step 315, 415, 515.
Der Client C dekodiert den erhaltenen Videostream VB unter Verwendung von Kameraparametern CP und Geometrie-Daten GD, und gibt diesen anschließend als aufbereiteten Videostream AVB in Schritt 324, 424, 524 wieder. The client C decodes the received video stream VB using camera parameters CP and geometry data GD, and then reproduces this as a prepared video stream AVB in step 324, 424, 524.
Wie in den Figuren 1 bis 3 aufgezeigt können in Ausführungsformen der Erfindung die Kameraparameter CP von dem Kodierer SRV in Schritt 317, 417, 517 (z.B. als Bitstream 2.1) erhalten werden oder aus dem erhaltenen Videostream VB bestimmt werden. As shown in Figures 1 to 3, in embodiments of the invention the camera parameters CP can be obtained from the encoder SRV in step 317, 417, 517 (e.g. as bitstream 2.1) or can be determined from the obtained video stream VB.
In Ausführungsformen der Erfindung können Geometriedaten GD von dem Kodierer SRV (z.B. als Bitstream 2.2) erhalten werden oder aus dem erhaltenen Videostream VB bestimmt werden. In embodiments of the invention, geometry data GD can be obtained from the encoder SRV (e.g. as bitstream 2.2) or determined from the obtained video stream VB.
Insbesondere kann vorgesehen sein, dass vor Erhalt des Videostreams VB der Dekodierer C dem Kodierer SRV seine Befähigung zur Verarbeitung signalisiert. Dabei kann auch ein Set an Möglichkeiten der Verarbeitung mitgeliefert sein, sodass der Kodierer das geeignete Format zur Verfügung stellen kann. Das zur Verfügung gestellte Format kann hierzu eine entsprechende Kodierung bezüglich Einstellungsdaten aufweisen. In particular, it can be provided that before receiving the video stream VB, the decoder C signals the coder SRV that it is able to process it. A set of processing options can also be supplied so that the coder can provide the appropriate format. For this purpose, the format made available can have a corresponding coding with regard to setting data.
In einer Ausführungsform der Erfindung weisen die Geometriedaten Tiefendaten auf. In one embodiment of the invention, the geometry data includes depth data.
Zusammenfassend sei nochmals darauf hingewiesen, dass im Falle der Figur 1 eine 3D Rekonstruktion sowohl auf der Seite des Kodierers als auch des Dekodierers zur Anwendung kommt. Im Beispiel der Figur 2 wird nur durch den Kodierer eine 3D Rekonstruktion durchgeführt und dem Dekodierer zur Verfügung gestellt. D.h. der Dekodierer muss keine 3D Rekonstruktion durchführen, sondern kann die vom Kodierer bereitgestellte 3D Geometriedaten verwenden. Die Abschätzung der 3D Geometriedaten auf Seiten des Kodierers ist dabei in aller Regel einfacher als auf Seiten des Dekodierers. Insbesondere dann, wenn die Rechenleistung auf Seiten des Dekodierers beschränkt ist, ist die Ausgestaltung gemäß Figur 2 vorteilhaft. Im Falle der Figur 3 wird wie in Figur 2 durch den Kodierer eine 3D Rekonstruktion durchgeführt und dem Dekodierer zur Verfügung gestellt. Allerdings wird hierbei nur eine Grobfassung der 3D Geometriedaten zur Verfügung gestellt. Hierdurch kann die Bitrate für die 3D Geometriedaten verringert werden. Zugleich muss aber der Dekodierer nun die 3D Geometriedaten nachvervollständigen/nachbearbeiten (Refine). In summary, it should again be pointed out that in the case of FIG. 1, a 3D reconstruction is used both on the encoder and on the decoder side. In the example in FIG. 2, a 3D reconstruction is carried out only by the encoder and made available to the decoder. This means that the decoder does not have to carry out a 3D reconstruction, but can use the 3D geometry data provided by the encoder. Estimating the 3D geometry data on the part of the coder is usually easier than on the part of the decoder. The configuration according to FIG. 2 is advantageous in particular when the computing power is limited on the part of the decoder. In the case of FIG. 3, as in FIG. 2, a 3D reconstruction is carried out by the coder and made available to the decoder. However, only a rough version of the 3D geometry data is provided here. This allows the bit rate for the 3D geometry data to be reduced. At the same time, however, the decoder now has to complete/postprocess the 3D geometry data (refine).
Die Wahl des Verfahrens (z.B. gemäß Figur 1, Figur 2 oder Figur 3) kann durch den Kodierer und den Dekodierer ausgehandelt werden. Dies kann z.B. auf Basis vorherigen Wissens (z.B. Rechenleistung) oder aber auch über einen Steuer- / Rückkanal (adaptiv) erfolgen, um z.B. auch Änderungen in der Übertragungskapazität zu berücksichtigen. In einem Broadcast Szenario, dass sich an mehrere Dekodierer richtet, wird in aller Regel die Ausgestaltung gemäß der Figur 2 bevorzugt sein. The choice of method (e.g. according to Figure 1, Figure 2 or Figure 3) can be negotiated between the encoder and the decoder. This can be done, for example, on the basis of previous knowledge (e.g. computing power) or via a control/return channel (adaptive) in order to also take changes in the transmission capacity into account, for example. In a broadcast scenario that is aimed at a number of decoders, the configuration according to FIG. 2 will generally be preferred.
Auch wenn die Erfindung in Bezug auf Verfahren beschrieben ist, so ist doch dem Fachmann verständlich, dass die Erfindung auch in Hardware, insbesondere durch Software eingerichtete Hardware zur Verfügung gestellt werden kann. Hierfür können gängige (De-)Kodiereinheiten, spezielle Recheneinheiten wie GPUs und DSPs ebenso wie ASICs oder FPGAs basierte Lösungen zum Einsatz kommen, ohne hierdurch die Anwendbarkeit allgemeiner Mikroprozessoren auszuschließen. Even if the invention is described in relation to methods, it is clear to a person skilled in the art that the invention can also be made available in hardware, in particular hardware set up by software. Common (de-)coding units, special computing units such as GPUs and DSPs as well as ASICs or FPGAs-based solutions can be used for this, without thereby excluding the applicability of general microprocessors.
Insbesondere kann die Erfindung demnach auch in Computerprogrammprodukten zur Einrichtung einer Datenverarbeitungsanlage zur Durchführung eines Verfahrens verkörpert sein. In particular, the invention can therefore also be embodied in computer program products for setting up a data processing system for carrying out a method.
Mit der Erfindung ist es möglich signifikante Einsparungen bei der Bitrate von mehreren Prozent zu erreichen, wenn entsprechend kodierbare Szenen vorliegen. With the invention, it is possible to achieve significant savings of several percent in the bit rate if there are scenes that can be encoded accordingly.
Nachfolgend sei zunächst angenommen, dass zu einem bestimmten Zeitpunkt eine fortlaufende Videoaufnahme kodiert werden soll. Dabei sind bereits einige Frames kodiert und ein weiterer Frame, der "to-be-encoded frame", soll nun kodiert werden. Je nachdem, wo sich der Frame in der Abfolge befindet und/oder je nach verfügbarer Datenrate bzw. Vidoekodiereinetstellung, kann dieser "to-be- encoded frame" mittels Intra-prediction oder Inter-prediction Werkzeugen kodiert werden. Typischerweise würde man z.B. für jeden ersten Rahmen einer Gruppe von Bildern (engl. Group of Pictures - abgek. GOP), z.B. dem 16ten frame (d.h. frame mit OrdnunungsnummerO, 16, 32, ... ) Intra- prediction Werkzeuge verwenden, während man für die "Zwischenframes" hierzu Inter-prediction Werkzeuge verwenden würde. It is initially assumed below that a continuous video recording is to be encoded at a specific point in time. A few frames have already been encoded and another frame, the "to-be-encoded frame", is now to be encoded. Depending on where the frame is in the sequence and/or depending on the available data rate or video coding setting, this "to-be-encoded frame" can be coded using intra-prediction or inter-prediction tools. Typically, one would eg for each first frame of a group of pictures (English Group of Pictures - abbreviated GOP), eg the 16th frame (ie frame with order number 0, 16, 32, ... ) Intra- prediction tools, while for the "inter-frames" one would use inter-prediction tools to do this.
Von besonderem Interesse im Rahmen der Erfindung sind die Rahmen, die mittels Inter-prediction Werkzeugen, zu kodieren sind, d.h. im Beispiel die Rahmen 1-15, 17-31, 33-47, ... , ... . Of particular interest within the scope of the invention are the frames to be encoded by means of inter-prediction tools, i.e. in the example frames 1-15, 17-31, 33-47, ... , ... .
Die wesentliche Idee bei Inter-prediction Werkzeugen ist es zeitliche Ähnlichkeiten zwischen aufeinanderfolgenden Rahmen zu nutzen. Falls ein Block eines zu kodierenden Rahmens ähnlich zu irgendeinem Rahmen in dem zuvor kodierten Rahmen ist (z.B. wegen einer Relativbewegung), so kann anstatt diesen Block erneut zu kodieren einfach auf diesen bereits kodierten Block verwiesen werden. Dieser Vorgang kann als Bewegungsausgleich (engl. „motion compensation") bezeichnet werden. Hierzu wird eine für jeden Rahmen neue Auflistung zuvor kodierter Rahmen verwendet, die als Referenz für den Bewegungsausgleich verwendet werden kann. Diese Liste wird auch Referenzbilderliste bezeichnet. Im Kern kann der Kodierer dabei den zu kodierenden Rahmen in einige nicht-überlappende Blöcke teilen. Anschließend kann der so erstellte Block mit zuvor kodierten Blöcken gemäß der dazu korrespondierenden Auflistung verglichen werden, um eine hohe - bevorzugt beste Übereinstimmung- aufzufinden. Die relative 2D Position des jeweiligen aufgefunden Blocks (d.h. der Bewegungsvektor) und die Differenz zwischen dem erstellten Block und dem aufgefundenen Block (d.h. das Rest-Signal (engl. residual signal)) kann dann (zusammen mit weiteren erstellten Blöcken, deren Position und deren Differenzen) kodiert werden. The main idea of inter-prediction tools is to use temporal similarities between consecutive frames. If a block of a frame to be encoded is similar to any frame in the previously encoded frame (e.g. due to relative motion), then instead of re-encoding this block, this already encoded block can simply be referred to. This process can be referred to as motion compensation. For this purpose, a new list of previously encoded frames is used for each frame, which can be used as a reference for the motion compensation. This list is also referred to as a reference picture list. In essence, the Coders divide the frame to be encoded into a few non-overlapping blocks, and then the block thus created can be compared with previously encoded blocks according to the corresponding listing to find a high - preferably best - match The relative 2D position of each block found (i.e. the motion vector) and the difference between the created block and the found block (i.e. the residual signal) can then be encoded (along with further created blocks, their position and their differences).
Im Rahmen der Erfindung wird mindestens ein neuartiges Referenzbild basierend auf 3D Information erstellt und zu dieser Referenzbilderliste hinzugefügt oder statt eines vorhanden Referenzbildes eingefügt werden. Hierzu wird für eine einzige (monokulare) Kamera die Kameraparameter CP und für die 3D Szenen Geometrie Geometrie-Daten GD aus einem Satz von 2D Bildern erstellt, welchen von der sich bewegenden monokularen Kamera erfasst wurden. Within the scope of the invention, at least one novel reference image is created based on 3D information and added to this list of reference images or inserted instead of an existing reference image. For this purpose, the camera parameters CP for a single (monocular) camera and geometry data GD for the 3D scenes are created from a set of 2D images, which were captured by the moving monocular camera.
Hieraus wird ein neuartiges Referenzbild basierend auf 3D Information für zu kodierende Rahmen erstellt, z.B. indem der Inhalt herkömmlicher Referenzbilder auf die Position des zu kodierenden Bildes verzerrt wird. Dieser Verzerrungsvorgang wird durch die erstellten / abgeschätzten Kameraparameter CP und für die 3D Szenen Geometrie Geometrie-Daten GD geleitet. Das so synthetisierte neuartiges Referenzbild basierend auf 3D Information erstellt und zu dieser Referenzbilderliste hinzugefügt. Das so erstellte neuartiges Referenzbild erlaubte eine verbesserte Leistungsfähigkeit in Bezug auf den Bewegungsausgleich, d.h. benötigt eine geringere Bitrate als herkömmliche Referenzbilder in der Referenzbilderliste. Hierdurch kann auch die am Ende benötigte Bitrate verringert werden und der Kodiergewinn erhöht werden. From this, a new type of reference image based on 3D information for frames to be encoded is created, eg by distorting the content of conventional reference images to the position of the image to be encoded. This warping process is guided by the established/estimated camera parameters CP and for the 3D scenes geometry geometry data GD. The novel reference image thus synthesized is created based on 3D information and added to this reference image list. The novel reference picture created in this way allowed improved performance with regard to motion compensation, ie requires a lower bit rate than conventional reference pictures in the reference picture list. In this way, the bit rate required at the end can also be reduced and the coding gain can be increased.
Um die Laufzeit des Dekodierers gering zu halten können verschiedene Ansätze verwendet werden. Various approaches can be used to keep the runtime of the decoder low.
Zum einen ist festzustellen, dass die Synthese von Referenzbildern auf Seiten des Dekoders zeitintensiv ist. Es kann jedoch ausreichend sein, den Kodierer mit dem neuartiges 3D-Referenzbild nur für eine oder mehrere Teilbereiche / Regionen in dem zu kodierenden Rahmen zu verwenden, z.B. 20 % - 30 % der Fläche / Pixel, nämlich insbesondere für jene, bei denen es eine gute Inter-Frame Vorhersage durch Optimierung gibt. Beispeilhaft sei dies wie folgt illustriert. Es sei angenommen, dass es 3 Referenzen RI, R2, R3D gibt und ein zu-kodierender Frame sei in nicht übverschneidende Blöcke unterteilt. R3D wäre dann eine der durch die Erfindung bereitgestellten Referenzen. Dann würde der Kodierer zunächst einen ersten Block wählen und überprüfen, welches der ähnlichste Block in einem der Referenzen ist; dies würde dann nach und nach für jeden Block durchgeführt. Typischerweise wird in 20 % - 30 % der Fälle R3D aufgefunden während im Rest der Fälle RI oder R2 aufegefunden wird. Diese Information, welches Referenzbild für welchen Block verwendet wird kann in den Videobitstrom eingespeist werden. Der Dekodierer kann dann diese Information einfach lesen und das neuartiges Referenzbild basierend auf 3D Information zumindest für diese Regionen, d.h. nicht für den gesamten Bereich, zu erstellen. D.h., anders als der Kodierer, reciht es für den Dokidierer unter unständen aus, wenn nur der verewndete Teil der Referenz R3D für die Inter-Prediction erstellt wird, während es nicht notwendig ist die anderen Teile der Refererenz R3D ebenfalls zu erstellen. On the one hand, it should be noted that the synthesis of reference images on the part of the decoder is time-consuming. However, it may be sufficient to use the encoder with the novel 3D reference image only for one or more sub-areas/regions in the frame to be encoded, e.g. 20% - 30% of the area/pixel, namely especially for those where there is a good inter-frame prediction through optimization. This is illustrated by way of example as follows. Suppose there are 3 references RI, R2, R3D and a frame to be encoded is divided into non-overlapping blocks. R3D would then be one of the references provided by the invention. Then the encoder would first choose a first block and check which is the most similar block in one of the references; this would then be done incrementally for each block. Typically, R3D is found 20%-30% of the time while RI or R2 is found in the rest of the cases. This information, which reference picture is used for which block, can be fed into the video bit stream. The decoder can then simply read this information and create the novel reference image based on 3D information at least for these regions, i.e. not for the entire area. That is, unlike the coder, it may be sufficient for the documenter if only the used part of the R3D reference is created for the inter-prediction, while it is not necessary to create the other parts of the R3D reference as well.
Zum anderen kann festgestellt werden, dass Rahmen eine unterschiedliche Anteil zur finalen Bitrate haben, basierend auf deren Reihenfolge und Position in der verwendeten Kodiererstruktur. Hierzu sei auf Figur 5 verwiesen. Die Kreise stellen Rahmen mit der Darstellungsreihenfolge dar. Die Pfeile zeigen die konventionell erstellten Referenzbilder an, die für den Bewegungsausgleich verwendet werden können. Zum Beispiel kann der Rahmen FM Fi und Fi+S als Referenz verwenden. In der hierarchischen Kodierstruktur tragen Rahmen mit einer zeitlichen Kennung 4 (TI D=4) weniger zu finalen Bitrate bei als Rahmen mit einer zeitlichen Kennung von TID<3. Dies liegt hauptsächlich daran, dass diese für den Bewegungsausgleich ihren jeweils unmittelbaren (vorhergehenden / nachfolgenden) Rahmen für den Bewegungsausgleich verwenden, die jedoch fast gleichen Inhalt aufweisen. Dagegen verwendet der Rahmen Fi+g beispielsweise Fi und FM6 als Referenzbilder, die jedoch weiter voneinander entfernt sind. On the other hand, it can be seen that frames have a different contribution to the final bit rate, based on their order and position in the encoder structure used. Reference is made to FIG. 5 in this regard. The circles represent frames with the rendering order. The arrows indicate the conventionally generated reference images that can be used for motion compensation. For example, the frame can use F M Fi and Fi +S as a reference. In the hierarchical coding structure, frames with a temporal identifier 4 (TI D=4) contribute less to the final bit rate than frames with a temporal identifier TID<3. This is mainly due to the fact that these use their respective immediate (previous / subsequent) frame for the motion compensation Use motion compensation, but have almost the same content. On the other hand, the frame Fi +g uses, for example, Fi and F M6 as reference images, but they are further apart.
Wir nehmen für die folgende Überlegung an, dass die im Rahmen der Erfindung vorgeschlagenen Vorgehensweise die Bitrate für jeden Rahmen um 5 % gegenüber dem bisherigen Vorgehen reduziert. Da Rahmen mit TID=4 weniger zu dem finalen Kodiergewinn / der finalen Bitrate beitragen (Annahme 10 % der gesamten Bitrate entfällt auf TID=4) fällt der Anteil der durch die Erfindung hier erzielt werden könnte entsprechend gering aus (5 % von 10 %). Man könnte daher für diesen Bereich auf die Verwendung des erfindungsgemäßen Verfahrens verzichten, da der Beitrag eher gering ist. Damit kann Rechenzeit / Speicherplatz gespart werden, um die Geschwindigkeit hoch zu halten bzw. für Bereiche bereitzuhalten, in denen das erfindungsgemäße Verfahren einen größeren Beitrag zu dem finalen Kodiergewinn / der finalen Bitrate beiträgt. For the following consideration, we assume that the procedure proposed within the scope of the invention reduces the bit rate for each frame by 5% compared to the previous procedure. Since frames with TID=4 contribute less to the final coding gain/the final bit rate (assuming 10% of the total bit rate is attributable to TID=4), the proportion that could be achieved here using the invention is correspondingly low (5% of 10%). . One could therefore dispense with the use of the method according to the invention for this area, since the contribution is rather small. Computing time/memory space can thus be saved in order to keep the speed high or ready for areas in which the method according to the invention makes a greater contribution to the final coding gain/the final bit rate.
Wird z.B. angenommen, dass der Gewinn durch das erfindungsgemäße Verfahren bei Anwendung auf alle Rahmen einen finalen Kodiergewinn 3 % bereitstellen würde, so würde das Auslassen der Rahmen mit TID=4 diesen finalen Kodiergewinn auf circa 2,7 % abschmelzen. Hingegen könnte der Kodierer (mehr als) doppelt so schnell sein. For example, assuming that the gain from the inventive method would provide a final coding gain of 3% when applied to all frames, skipping the frames with TID=4 would shrink this final coding gain to about 2.7%. On the other hand, the encoder could be (more than) twice as fast.
Selbst wenn man das erfindungsgemäße Verfahren nur auf TID<1 anwenden würde, so würde das Auslassen der anderen Rahmen diesen finalen Kodiergewinn auf circa 1 % abschmelzen. Even if the method according to the invention were only applied to TID<1, omitting the other frames would reduce this final coding gain to around 1%.
Sinnvollerweise wird der Dekodierer über einen solchen Umstand informiert, falls der Kodierer eine oder mehrere Rahmen mit bestimmten TIDs nur kodiert bzw. nicht kodiert. Je nach Ausgestaltung kann dies durch ein Flag (reduziert / nicht-reduziert) oder durch ein Code-Wort (z.B. 1 für nur TID=l, 2 nur für TID=2, 4 nur TID=3 bzw. 3 für TID 1 und 2, ... ) verwendet werden. It makes sense for the decoder to be informed of such a circumstance if the encoder only encodes or does not encode one or more frames with specific TIDs. Depending on the design, this can be done with a flag (reduced / not reduced) or with a code word (e.g. 1 for only TID=1, 2 only for TID=2, 4 only for TID=3 or 3 for TID 1 and 2 , ... ) be used.
Es sei angemerkt, dass die Kameraparameter CP und für die 3D Szenen Geometrie Geometrie-Daten GD nicht nur einmalig sondern wiederkehrend einzeln oder im Verbund vom Kodierer an den Dekodierer zur Verfügung gestellt werden können. Dabei kann jeweils ein neuer Satz als auch ein Update zur Verfügung gestellt werden. It should be noted that the camera parameters CP and for the 3D scene geometry geometry data GD can be made available not just once but repeatedly, individually or in combination, from the encoder to the decoder. A new sentence as well as an update can be made available.

Claims

Ansprüche Verfahren zur Wiedergabe eines Videostreams durch einen Client (C), wobei der Videostream Frames von genau einer Kamera in Bezug auf ein sich relativ hierzu bewegendes Objekt aus unterschiedlichen Positionen aufweist, aufweisend die Schritte Claims Method for playing back a video stream by a client (C), wherein the video stream has frames from exactly one camera in relation to an object moving relative thereto from different positions, comprising the steps
• Erhalten eines Videostreams (VB) von einem Kodierer (SRV), • receiving a video stream (VB) from an encoder (SRV),
• Dekodieren des erhaltenen Videostreams (VB) unter Verwendung von Kameraparametern (CP) und Geometrie-Daten (GD), • Decoding of the received video stream (VB) using camera parameters (CP) and geometry data (GD),
• Wiedergabe des aufbereiteten Videostreams (AVB). Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Kameraparameter (CP) von dem Kodierer (SRV) erhalten werden oder aus dem erhaltenen Videostream (VB) bestimmt werden. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Geometrie-Daten (GD) von dem Kodierer (SRV) erhalten werden oder aus dem erhaltenen Videostream (VB) bestimmt werden. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass vor Erhalt des Videostreams (VB) der Client (C) dem Kodierer (SRV) seine Befähigung zur Verarbeitung signalisiert. Verfahren nach einem der der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Geometriedaten Tiefendaten aufweisen. Vorrichtung zur Durchführung eines Verfahrens gemäß einem der Ansprüche 1 bis 5. Computerprogrammprodukt zur Einrichtung einer Datenverarbeitungsanlage zur Durchführung eines Verfahrens gemäß einem der vorhergehenden Ansprüche 1 bis 5. Verfahren zur Bereitstellung eines Videostreams durch einen Kodierer (SRV) an einen Client (C), wobei der Videostream Frames von genau einer Kamera in Bezug auf ein sich relativ hierzu bewegendes Objekt aus unterschiedlichen Positionen aufweist, aufweisend die Schritte• Playback of the processed video stream (AVB). Method according to Claim 1, characterized in that the camera parameters (CP) are obtained from the encoder (SRV) or are determined from the obtained video stream (VB). Method according to Claim 1 or 2, characterized in that the geometry data (GD) are obtained from the coder (SRV) or are determined from the obtained video stream (VB). Method according to one of the preceding claims, characterized in that before receiving the video stream (VB), the client (C) signals to the coder (SRV) that it is able to process it. Method according to one of the preceding claims, characterized in that the geometry data have depth data. Device for performing a method according to any one of claims 1 to 5. Computer program product for setting up a data processing system for performing a method according to any one of the preceding claims 1 to 5. Method for providing a video stream by a coder (SRV) to a client (C), wherein the video stream has frames from exactly one camera in relation to an object moving relative thereto from different positions, comprising the steps
• Erhalten von Frames von einer Kamera in Bezug auf ein Objekt aus unterschiedlichen Positionen in Form eines Videostreams (eVB) • Obtaining frames from a camera related to an object from different positions in the form of a video stream (eVB)
• Encodieren des erhaltenen Videostreams (eVB) unter Verwendung von Kameraparametern (CP) und Geometrie-Daten (GD), • Encoding of the received video stream (eVB) using camera parameters (CP) and geometry data (GD),
• Streamen des Videostreams (VB). 9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass die Kameraparameter (CP) von einer externen Quelle erhalten werden oder aus dem erhaltenen Videostream (VB) bestimmt werden. • Streaming video stream (VB). 9. The method as claimed in claim 8, characterized in that the camera parameters (CP) are obtained from an external source or are determined from the video stream (VB) obtained.
10. Verfahren nach Anspruch 8 oder 9 dadurch gekennzeichnet, dass die Geometrie-Daten (GD) von einer externen Quelle erhalten werden oder aus dem erhaltenen Videostream (VB) bestimmt werden. 10. The method as claimed in claim 8 or 9, characterized in that the geometry data (GD) are obtained from an external source or are determined from the video stream (VB) obtained.
11. Verfahren nach einem der vorhergehenden Ansprüche 9 oder 10, dadurch gekennzeichnet, dass die externe Quelle ein Sensor und/oder die Kameras sind. 11. The method according to any one of the preceding claims 9 or 10, characterized in that the external source is a sensor and/or the cameras.
12. Verfahren nach einem der der vorhergehenden Ansprüche 8 bis 11, dadurch gekennzeichnet, dass vor dem Streamen des Videostreams (VB) der Kodierer (SRV) von dem Client (C) seine12. The method according to any one of the preceding claims 8 to 11, characterized in that before streaming the video stream (VB) of the encoder (SRV) from the client (C).
Befähigung zur Verarbeitung signalisiert bekommt. Ability to process gets signaled.
13. Verfahren nach einem der der vorhergehenden Ansprüche 1 bis 12, dadurch gekennzeichnet, dass die Geometriedaten Tiefendaten aufweisen. 13. The method according to any one of the preceding claims 1 to 12, characterized in that the geometry data have depth data.
14. Vorrichtung zur Durchführung eines Verfahrens gemäß einem der Ansprüche 8 bis 13. 15. Computerprogrammprodukt zur Einrichtung einer Datenverarbeitungsanlage zur14. Device for carrying out a method according to one of claims 8 to 13. 15. Computer program product for setting up a data processing system for
Durchführung eines Verfahrens gemäß einem der vorhergehenden Ansprüche 8 bis 13. Carrying out a method according to any one of the preceding claims 8 to 13.
EP21823541.4A 2021-01-12 2021-11-30 Method for playback of a video stream by a client Pending EP4278608A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102021200225.0A DE102021200225A1 (en) 2021-01-12 2021-01-12 Method for playing a video stream by a client
PCT/EP2021/083632 WO2022152452A1 (en) 2021-01-12 2021-11-30 Method for playback of a video stream by a client

Publications (1)

Publication Number Publication Date
EP4278608A1 true EP4278608A1 (en) 2023-11-22

Family

ID=78829424

Family Applications (1)

Application Number Title Priority Date Filing Date
EP21823541.4A Pending EP4278608A1 (en) 2021-01-12 2021-11-30 Method for playback of a video stream by a client

Country Status (4)

Country Link
US (1) US20240056654A1 (en)
EP (1) EP4278608A1 (en)
DE (1) DE102021200225A1 (en)
WO (1) WO2022152452A1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102918846B (en) 2010-02-24 2015-09-09 日本电信电话株式会社 Multi-view point video encoding method, multi-view point video coding/decoding method, multiple view video coding device, multi-view point video decoding device
CN103988226B (en) * 2011-08-31 2017-09-26 Metaio有限公司 Method for estimating camera motion and for determining real border threedimensional model

Also Published As

Publication number Publication date
DE102021200225A1 (en) 2022-07-14
WO2022152452A9 (en) 2022-09-01
US20240056654A1 (en) 2024-02-15
WO2022152452A1 (en) 2022-07-21

Similar Documents

Publication Publication Date Title
DE60015566T2 (en) METHOD AND DEVICE FOR COMPRESSING A MOTION VECTOR FIELD
DE69530908T2 (en) Image coding method and apparatus
DE69834902T2 (en) MOTION COMPENSATED PREDICTIVE PICTURE CODING AND DECODING
EP2614647B1 (en) Reference frame compression and decompression in a video coder
DE112017006638T5 (en) Improved video bitstream encoding
DE102013015821B4 (en) System and method for improving video coding using content information
DE102007049351A1 (en) A method and apparatus for creating a coded output video stream from at least two coded input video streams, and using the apparatus and coded input video stream
DE10113880B4 (en) Method for compressing and decompressing video data
EP2521357A1 (en) Method and device for filtering of coded image partitions
DE112018005899T5 (en) System and method for constructing a plane for planar prediction
DE69915843T2 (en) PART BAND CODING / decoding
DE112012006541B4 (en) Video compression method
EP0773690A2 (en) Method for encoding a video data stream
DE10296787B4 (en) Selective predication for intra-coding a video data block
DE60107149T2 (en) Digital image output device
DE102011006036B4 (en) Methods and apparatus for forming a prediction value
DE69737711T2 (en) Method and device for coding an object contour using its time correlation
LU102424B1 (en) Method for playing a video stream by a client
EP4278608A1 (en) Method for playback of a video stream by a client
EP1829378B1 (en) Image encoding method and associated image decoding method, encoding device, and decoding device
EP0346635A2 (en) Method and device for coding pictures
DE19749655B4 (en) Method and device for coding a motion vector
EP1285537B1 (en) Method and an arrangement for the coding and decoding of a series of images
DE102012202315A1 (en) Video system for displaying image data, methods and computer program
DE2703854A1 (en) PCM video signal transmission circuit - has difference pulse code modulation and variable word length encoders

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20230614

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)