System and method for implementing efficient decoded buffer management in multi-view video coding
Abstract
A method of encoding a plurality of views of a scene in a bit stream of encoded video, each view of said plurality of views containing a plurality of images, the method comprising: provide a signaling element for each image of a view, the signaling element indicating whether or not the corresponding image of that view is used as a reference for any other image belonging to a different view, wherein the signaling element is a signal and is signaled in a network abstraction layer unit header of a network abstraction layer unit containing encoded video data of said corresponding image of said view.

Term
1.1 yearsto projected expiry
Projected expiry 15 October 2027, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
6 claims: 2 independent, 4 dependent
- 1E07826751 14-08-2014 REIVINDICACIONES 1. Un procedimiento de codificación de una pluralidad de vistas de una escena en un flujo de bits de vídeo codificado, conteniendo cada vista de dicha pluralidad de vistas una pluralidad de imágenes, comprendiendo el 5 procedimiento:proporcionar un elemento de señalización para cada imagen de una vista, indicando el elemento de señalización si la imagen correspondiente de dicha vista se utiliza o no como referencia para cualquier otra imagen que pertenece a una vista diferente, en donde el elemento de señalización es una señal y se 10 señaliza en una encabezado de unidad de capa de abstracción de red de una unidad de capa de abstracción de red que contiene datos de vídeo codificados de dicha imagen correspondiente de dicha vista.
- 2Un procedimiento de decodificación de un flujo de bits de vídeo codificado, una representación codificada de una 15 pluralidad de vistas de una escena, conteniendo cada vista de dicha pluralidad de vistas una pluralidad de imágenes, comprendiendo el procedimiento:recuperar un elemento de señalización para cada imagen de una vista desde el flujo de bits de vídeo codificado, indicando el elemento de señalización si la imagen correspondiente de dicha vista se utiliza o no 20 como referencia para cualquier otra imagen que pertenece a una vista diferente, en donde el elemento de señalización es una señal y se recupera de un encabezado de unidad de capa de abstracción de red de una unidad de capa de abstracción de red que contiene datos de vídeo codificados de dicha imagen correspondiente de dicha vista. 25 3. Un procedimiento de acuerdo con la reivindicación 2, comprendiendo además el procedimiento: si el elemento de señalización indica que la imagen de la vista no se utiliza como una referencia para cualquier otra imagen que pertenece a una vista diferente y si la imagen no se utiliza como referencia para cualquier otra imagen que pertenece a la misma vista, omitir la transmisión de una parte de la corriente de 30 bits codificada correspondiente a la imagen.
- 4Un procedimiento de acuerdo con la reivindicación 2, comprendiendo además el procedimiento:si el elemento de señalización indica que la imagen de la vista no se utiliza como referencia para cualquier 35 otra imagen que pertenece a una vista diferente y si la imagen no se utiliza como referencia para cualquier otra imagen que pertenece a la misma vista, omitir la decodificación de una parte de la corriente de bits codificada correspondiente a la imagen.
- 5Un aparato para codificar una pluralidad de vistas de una escena en un flujo de bits de vídeo codificado, 40 conteniendo cada vista de dicha pluralidad de vistas una pluralidad de imágenes, comprendiendo el aparato:medios para proporcionar un elemento de señalización para cada imagen de una vista, indicando el elemento de señalización si la imagen correspondiente de dicha vista se utiliza o no como referencia para cualquier otra imagen que pertenece a una vista diferente, en donde el elemento de señalización es una 45 señal y se señaliza en una encabezado de unidad de capa de abstracción de red de una unidad de capa de abstracción de red que contiene datos de vídeo codificados de dicha imagen correspondiente de dicha vista.
- 6Un aparato para decodificar un flujo de bits de vídeo codificado, una representación codificada de una pluralidad 50 de vistas de una escena, conteniendo cada vista de dicha pluralidad de vistas una pluralidad de imágenes, comprendiendo el aparato:medios para recuperar un elemento de señalización para cada imagen de una vista desde el flujo de bits de vídeo codificado, indicando el elemento de señalización si la imagen correspondiente de dicha vista se 55 utiliza o no como referencia para cualquier otra imagen que pertenece a una vista diferente, en el que el elemento de señalización es una señal y se recupera de un encabezado de unidad de capa de abstracción de red de una unidad de capa de abstracción de red que contiene datos de vídeo codificados de dicha imagen correspondiente de dicha vista. 60 7. Un aparato de acuerdo con la reivindicación 6, comprendiendo además el aparato: medios para omitir la transmisión de una parte de la corriente de bits codificada correspondiente a la imagen si el elemento de señalización indica que la imagen de la vista no se utiliza como una referencia para cualquier otra imagen que pertenece a una vista diferente y si la imagen no se utiliza como referencia 65 para cualquier otra imagen que pertenece a la misma vista. 21 E07826751 14-08-2014
- 8Un aparato de acuerdo con la reivindicación 6, comprendiendo además el aparato:medios para omitir la decodificación de una parte de la corriente de bits codificada correspondiente a la imagen si el elemento de señalización indica que la imagen de la vista no se utiliza como referencia para cualquier otra imagen que pertenece a una vista diferente y si la imagen no se utiliza como una referencia para cualquier otra imagen que pertenece a la misma vista. 22
Independent claims6
396 paragraphs in 20 sections, as filed
15
25
35
45
55
65
E07826751
14-08-2014
DESCRIPTION
System and procedure for implementing efficient management of decoded buffer memory in multi-view video coding
Field of the Invention
The present invention relates generally to video coding. More specifically, the present invention relates to the administration of the buffer of encoded images in multi-view video coding.
Background of the invention
In multi-view video coding, video sequences produced from different cameras, each corresponding to different views of a scene, are encoded in a single bit stream. After decoding, to show a certain view, the decoded images belonging to that view are reconstructed and displayed. It is also possible that more than one view is reconstructed and visualized.
Multi-view video coding processes a wide variety of applications, including free point-of-view video / television, three-dimensional (3D) TV and polling applications. Currently, the Joint Video Team (JVT) of the International Organization for Standardization (ISO) / Group of Experts on Motion Pictures (MPEG) of the International Engineering Consortium (IEC) and the Group of Experts on Video Coding of the International Telecommunication Union (ITU) -T is working to develop a multi-view video coding standard (MVC), which is becoming an extension of the ITU-T H.264 standard, also known as ISO / IEC MPEG-4 Part 10. These draft standards are referred to herein as MVC and AVC, respectively. The latest draft of the MVC standard is described in JVT-T208, "Joint Multiview Video Model (JMVM) 1.0", 20th JVT Meeting, Klagenfurt, Austria, July 2006, can be found at ftp3.itu.ch/av-arch /ivt-site/2006/07_Klagenfurt/JVT-T208.zip.
In JMVM 1.0, for each group of images (GOP), the images of any view are contiguous in decoding order. This is illustrated in Figure 1, where the horizontal direction indicates the time (each instant of time being represented by Tm) and the vertical direction indicates the view (each view being represented by Sn). The images of each view are grouped into GOPs, for example, images T1 to T8 in Figure 1 for each view form a GOP. This decoding order arrangement is called as coding of the first view. It should be noted that for images in a view and in a GOP, although their decoding order is continuous without any other image to be inserted between any of the two images, their decoding order can change internally.
It is also possible to have a different decoding order than described for the coding of the first view. For example, the images may be arranged such that the images of any temporary location are contiguous in the order of decoding. This arrangement is shown in Figure 2. This decoding order arrangement is called first time coding. It should also be noted that the decoding order of the access units may not be identical to the temporary order.
A typical prediction structure (which includes prediction between images in each view and prediction between views) for multi-view video coding is shown in Figure 2, where the predictions are indicated by arrows, and the object pointed-to uses the object pointed-from for prediction reference. The prediction between images within a view is also called temporal prediction, prediction between views, or simply, interprediction.
An Instant Decode Update (IDR) image is an intracoded image that causes the decoding process to mark all reference images as "not used for reference" immediately after decoding the IDR image. After decoding an IDR image, all of the following images encoded in the decoding order can be decoded without interprediction of any decoded image before the IDR image.
In AVC and MVC, the encoding parameters that remain unchanged through an encoded video sequence are included in a set of sequence parameters. In addition to the parameters that are essential for the decoding process, the sequence parameter set may optionally contain video utilization information (VUI), which includes parameters that are important for temporary storage, image output synchronization, rendering , and reserve of resources. There are two structures specified to carry sets of sequence parameters - the NAL unit of the sequence parameter set that contains all the data for AVC images in the sequence, and the extension of the sequence parameter set for MVC. A set of image parameters contains the parameters that probably will not change in several encoded images. Frequently, the change of image level data is repeated in each line header, and the image parameter sets carry the parameters
15
25
35
45
55
65
E07826751
14-08-2014
Image level remaining. The H.264 / AVC syntax allows many instances of sequence and image parameter sets, and each instance is identified with a unique identifier. Each line header includes the identifier of the image parameter set that is active for decoding the image that contains the line, and each image parameter set contains the identifier of the active sequence parameter set. Consequently, the transmission of the image and sequence parameter sets does not have to be precisely synchronized with the transmission of the lines. Rather, it is sufficient that the sets of sequence parameters and active images be received at any time before they are referenced, which allows the transmission of parameter sets using a more reliable transmission mechanism compared to the protocols used for the data of lines. For example, parameter sets can be included as a MIME parameter in the session description for the Real-Time Protocol (RTP) sessions of H.264 / AVC. It is recommended to use a reliable out-of-band transmission mechanism whenever possible in the application in use. If parameter sets are transmitted within the band, they can be repeated to improve the robustness of errors.
As described herein, an anchor image is an encoded image in which all lines only refer to lines with the same time index, that is, only lines in other views and not lines in previous images of the current view. . An anchor image is signaled by setting an anchor_pic_flag to 1. After decoding the anchor image, all subsequent encoded images in the order of display are capable of decoding without interprediction of any decoded image before the anchor image. If an image in one view is an anchor image, then all images with the same time index in other views are also anchor images. Consequently, the decoding of any view can be initiated from a temporary index corresponding to anchor images.
Synchronization of image output, such as output time recording, is not included in the integral part of AVC or MVC bit streams. However, an image order count (POC) value is derived for each image and is non-decreasing with the increase in the position of the image in the output order in relation to the previous IDR image or an image containing a memory management control operation that marks all images as “not used for reference.” Therefore, the POC indicates the order of output of the images. It is also used in the decoding process to implicitly scale motion vectors in direct modes of doubly predictive lines, for weights derived implicitly in weighted prediction, and for initialization of a list of reference images of B lines. Additionally, the POC is also used in the verification of the conformity of the exit order.
POC values can be encoded with one of three serialized modes in the set of active sequence parameters. In the first mode, the selected number of the least significant bits of the POC value is included in each line header. In the second mode, the relative increases in POC as a function of the position of the image in the decoding order in the encoded video sequence are encoded in the sequence parameter set. In addition, deviations from the POC value derived from the sequence parameter set can be indicated in the line headers. In the third mode, the POC value is derived from the decoding order assuming that the decoding and the output order are identical. In addition, only a non-reference image can appear consecutively when the third mode is used.
nal_ref_idc is a 2-bit syntax element in the header of the NAL unit. The value of nal_ref_idc indicates the relevance of the NAL unit for the reconstruction of sample values. The non-zero values of nal_ref_idc should be used for NAL units of line and coded line data partition of the reference images, as well as for NAL units of the parameter set. The nal_ref_idc value must be equal to 0 for lines and data partitions of non-reference image lines and for NAL units that do not affect the reconstruction of sample values, such as NAL units of supplementary improvement information. In the H.264 / AVC high-level design, external specifications (that is, any system or specification that uses or references H.264 / AVC) were allowed to specify an interpretation of non-zero values of nal_ref_idc. For example, the RTP payload format for H.264 / AVC, Request for Comments (RFC) 3984 (which can be found at www.ietf.org/rfc/rfc3984.txt and which is incorporated herein by reference) specified strong recommendations about the use of nal_ref_idc. In other words, some systems have established practices to set and interpret the non-zero values of nal_ref_idc. For example, an RTP mixer could set nal_ref_idc according to the type of NAL unit, for example, nal_ref_idc is set to 3 for IDR NAL units. Since MVC is a backward compatible extension of the H.264 / AVC standard, it is desirable that the elements of the H.264 / AVC knowledge system are also capable of handling MVC flows. Therefore, it is undesirable that the semantics of a particular nonzero value of nal_ref_idc be specified differently in the MVC specification compared to any nonzero value of nal_ref_idc.
Decoded images used to predict subsequent encoded images and for future output are temporarily stored in a decoded image buffer (DPB). To efficiently utilize a buffer memory, the DPB administration process, including the process of storing decoded images within the DPB, the process of marking reference images, the processes for removing and removing decoded images from the DPB, must specify
15
25
35
45
55
65
E07826751
14-08-2014
The process for marking reference images in AVC is generally as follows. The maximum number of reference images used for interprediction, called M, is indicated in the set of active sequence parameters. When an image is decoded, it is marked with a "used for reference". If decoding the reference image causes more than M images to be marked "used for reference," then at least one image must be marked as "not used for reference." The DPB withdrawal process would then remove images marked "not used for reference" from the DPB if they do not need to be removed either.
There are two types of operations for marking reference images: adaptive memory control and sliding window. The operation mode for marking reference images is selected based on the image. Adaptive image control requires the presence of memory management control operation (MMCO) commands in the bit stream. Memory management control operations allow explicit signaling of which images are marked as "not used for reference", the assignment of long-term indexes to short-term reference images, the storage of current images as long-term images , the change from a short-term image to the long-term image, and the assignment of the maximum allowed long-term index (MaxLongTermFrameIdx) for long-term images. If the sliding window operation mode is in use and there are M images marked as "used for reference," then the short-term reference image that was the first decoded image among the short-term reference images that were marked as " used for reference "is marked as" not used for reference ". In other words, the sliding window operation mode results in a buffer operation of first to enter / first to exit between short-term reference images.
Each short-term image is associated with a PicNum variable that is derived from the frame_num syntax element. Each long-term image is associated with a variable LongTermPicNum that is derived from the long_term_frame_idx syntax element, which is signaled by the MMCO command. PicNum is derived from the FrameNumWrap syntax element, depending on whether the frame or field is encoded or decoded. For frames where PicNum is equal to FrameNumWrap, FrameNumWrap is derived from FrameNum, and FrameNum is derived directly from frame_num. For example, in AVC frame coding, FrameNum is assigned the same value as frame_num, and FrameNumWrap is defined as follows:
if (FrameNum> frame_num) FrameNumWrap = FrameNum -MaxFrameNum else FrameNumWrap = FrameNum
LongTermPicNum is derived from the long-term frame index (LongTermFrameIdx) assigned for the image. For frames, LongTermPicNum is equal to LongTermFrameidx. Frame_num is a syntax element in each line header. The value of frame_num for a frame or a pair of complementary fields essentially increases by one, in arithmetic module, in relation to the frame_num of the previous reference frame or the pair of complementary reference fields. In IDR images, the value of frame_num is zero. For images that contain a memory management control operation that marks all images as "not used for reference," the value of frame_num is considered to be zero after image decoding.
The MMCO commands use PicNum and LongTermPicNum to indicate the target image for the command as follows. To mark a short square image as "not used for reference", the PicNum difference between the current image p and the destination image r is signaled in the MMCO command. To mark a long-term image as "not used for reference," the LongTermPicNum of the image to be removed is indicated in the MMCO command. To store the current image p as a long-term image, a long_term_frame_idx is signaled with the MMCO command. This index is assigned to the recently stored long-term image as the value of LongTermPicNum. To change an image r from being a short term image to a long term image, a PicNum difference is signaled between the current image p and the image r in the MMCO command, the longterm_frame_idx is signaled in the MMCO command, and the Index is assigned to this long-term image.
When multiple reference images can be used, each reference image must be identified. In AVC, the identification of a reference image used for an encoded block is as follows. First, all reference images stored in the DPB for future image prediction reference are marked as "used for short-term reference" (short-term images) or "used as long-term reference" (long-term images). square). When a coded line is decoded, a list of reference images is constructed. If the coded line is a doubly predicted line, then a second list of reference images is also constructed. A reference image used for an encoded block is then identified by the index of the reference image used in the reference image list. The index is encoded in the bit stream when more than one reference image is used.
The process of building the list of reference images is as follows. For simplicity, it is assumed that only a list of reference images is needed. First, a list of reference images is constructed
10
15
20
25
30
35
40
45
50
55
60
65
E07826751
14-08-2014
initial that includes all the short-term and long-term images. The reordering of the reference image list (RPLR) is then performed when the line header contains RPLR commands. The PRLR process can reorder the reference images in a different order than the order in the initial list. Finally, the final list is constructed keeping only a number of images at the beginning of the possibly rearranged list, indicating the number by another syntax element in the line header or the set of image parameters referred to by the line.
During the initialization process, all short-term and long-term images are considered as candidates for lists of reference images for the current image. Regardless of whether the current image is a B or P image, long-term images are placed after short-term images in RefPicList0 (and RefPicList1 available for B lines). For P images, the initial reference image list for RefPicList0 contains all short-term reference images arranged in descending order of PicNum. for B images, those reference images obtained from all short-term images are ordered by a rule related to the current POC number and the POC number of the reference image for RefPicList0, the reference images with the smallest POC ( compared to the current POC) they are considered first and inserted into the RefPicList0 with the descending order of POC. Then the images with larger POC are appended in ascending order of POC. For RefPicList1 (if available), the reference images with larger POC (compared to the current POC) are considered first and inserted into the RefPicList1 in ascending order of POC. The images with smaller POC are then appended in descending order of the POC. After considering all the short-term reference images, the long-term reference images are appended in ascending order of LongTermPicNum, both for P images and for
B.
The reordering process is invoked through RPLR commands, which include four types. The first type is a command to specify a smaller short-term image with PicNum (compared to a temporarily predicted PicNum) that will be moved. The second type is a command to specify a larger short-term image with PicNum that will be moved. The third type is a command to specify a long-term image with a certain LongTermPicNum that will be moved and the end of the RPLR cycle. If the current image is doubly predicted, then there are two cycles, one for a forward reference list and the other for a backward reference list.
The predicted PicNum called picNumLXPred is initialized as the PicNum of the current encoded image. This is set in the PicNum of the image that has just moved after each reordering process for a short-term image. The difference between the PicNum of the current image that is reordered and picNumLXPred will be signaled in the RPLR command. The indicated image to reorder is moved to the beginning of the list of reference images. After the reordering process is completed, a whole list of reference images will be truncated based on the size of the active reference image list, which is num_ref_idx_IX_active_minus1 + 1 (X equals 0 or 1 corresponds to RefPicList0 and RefPicList1 respectively).
The hypothetical reference decoder (HRD), specified in Annex C of the H.264 / AVC standard, is used to verify the conformity of the bit stream and decoder. The HRD contains an encoded image buffer (CPB), an instant decoding process, a decoded image buffer (DPB), and a block of output image clippings. The CPB and the instant decoding process are specified in a manner similar to any other video encoding standard, and the output image clipping block simply trims those samples of the decoded image that are outside the scope of the output images marked. The DPB was introduced in H.264 / AVC in order to control the memory resources required to decode conformance bit streams.
There are two reasons to temporarily store decoded images, for references in interprediction and to reorder decoded images in the order of output. As the H.264 / AVC standard provides great flexibility for both reference image marking and output rearrangement, separate buffers for temporary storage of reference images and temporary storage of output images could be a waste of resource resources. memory. Therefore, the DPB includes a unified temporary decoded image storage process for reference images and output rearrangement. A decoded image is removed from the DPB when it is no longer used as a reference or needed for output. The maximum size of the DPB that is allowed to be used for bit streams is specified in the Level definitions (Annex A) of the H.264 / AVC standard.
There are two types of conformance for decoders: conformance of outgoing synchronization and conformance of the order of exit. For outgoing synchronization compliance, a decoder must take pictures at identical times compared to HRD. For the conformity of the output order, only the correct order of the output image is taken into account. It is assumed that the DPB of the output order contains a maximum allowed number of frame buffers. A frame is removed from the DPB when it is no longer used as a reference or needed for output. When the DPB becomes full, the most previous frame in the output order is issued until at least one frame buffer is vacated.
15
25
35
45
55
65
E07826751
14-08-2014
Temporal scalability is done through the hierarchical structure of GOP of B images using only AVC tools. A typical temporal scalability GOP usually includes a key image, which is encoded as an I or P frame, and other images that are encoded as B images. Those B images are hierarchically encoded based on the POC. The coding of a GOP only needs the key images of the previous GOP in addition to those images in the GOP. The relative number of POCs (POC minus the previous anchor image POC) is called POCIdInGOP in the implementation. Each POCIdInGOP can have a form of POCIdInGOP = 2xy (where and is an odd number). Images with the same value of x belong to the same time level, which is indicated as Lx (where L = log2 (GOP_length)). Only images with the highest time level L are not stored as reference images. Normally, images at a temporary level can only use images at lower temporal levels as references to support temporal scalability, that is, higher temporal level images can be deposited without affecting decoding of lower temporal level images. Similarly, the same hierarchical structure can be applied in the view dimension for view scalability.
In the current JMVM, frame_num is encoded separately and signaled for each view, that is, the value of frame_num is increased in relation to the previous reference frame or the pair of complementary reference fields within the same view as the image current. In addition, images in all views share the same DPB buffer. To globally manipulate the construction of reference image lists and management of reference images, the FrameNum and POC generation are redefined as follows:
FrameNum = frame_num * (1 + num_views_minus_1) + view_id PicOrderCnt () = PicOrderCnt () * (1 + num_views_minus_1) + view_id;
JMVM basically follows the same reference image marking as that used for AVC. The only difference is that, in JMVM, the FramNum is redefined and that FrameNumWrap is redefined as follows:
if (FrameNum> frame num * (1 + num_views_minus_1) + view_id) FrameNumWrap = FrameNum - MaxFrameNum * (1 + num_views_minus_1) + view_id else FrameNumWrap = FrameNum
In the current JMVM standard, reference images between views are implicitly specified in the SPS (Sequence Parameter Set) extension, where the active number of reference lists between views and the identification of views of those images are specified. This information is shared by all the images that refer to the same SPS. The process of constructing the reference image list first performs the initialization of the reference image list, rearranging and truncating in the same way as in AVC, but taking into account all the reference images stored in the DPB. Images with view identifications specified in the SPS and within the same time axis (that is, having the same capture / output time) are then appended to the list of references in the order in which they are listed in the SPS.
Unfortunately, previous JSVM designs give rise to several problems. First, it is sometimes desirable that a change in decoded views (through a decoder), transmitted (through a transmitter) or sent (through a gateway or MANE) occur at a different time than the corresponding one. to the anchor images. For example, a base view can be compressed for the highest coding efficiency (temporal prediction is widely used) and anchor images are infrequently encoded. Consequently, anchor images for other views also occur infrequently, because they are synchronized across all views. The current JMVM syntax does not include signaling an image from which decoding of a certain view can be initiated (unless all views of the time index contain an anchor image).
Second, the reference views allowed for prediction between views are specified for each view (and separately for anchor and non-anchor images). However, depending on the similarity between an image that is encoded and a potential image on the same time axis and in a potential reference view, the prediction between views may or may not be performed on the encoder. The current JMVM standard uses nal_ref_idc to indicate whether an image is used for intra-view or inter-view prediction, but cannot indicate separate pair if an image is used for intra-view prediction and / or inter-view prediction. In addition, according to JMVM 1.0, for AVC compatible view, nal_ref_idc must be set not equal to 0, even if the image is not used for temporary prediction when used only for inter-view prediction reference. Consequently, if only that view is decoded and removed, an additional DPB size is required for storing such images when those images can be removed as soon as they are decoded.
Thirdly, it is appreciated that the reference image marking process specified in JMVM 1.0 is basically identical to that of the AVC process, except for the redefinition of FramNum, FrameNumWrap and consequently PicNum. Therefore, several special problems arise. For example, this process cannot
15
25
35
45
55
65
E07826751
14-08-2014
efficiently manage the management of decoded images that are required to temporarily store for inter-view prediction, particularly when those images are not used for temporary prediction reference. The reason is that the DPB administration process specified in the AVC standard was aimed at single-view coding. In single-view coding such as in the AVC standard, decoded images that need to be stored temporarily for the temporary prediction reference or future output can be removed from the buffer when they are no longer needed for temporal prediction reference and future output. To allow the removal of a reference image as soon as it is no longer needed for temporary prediction reference and future output, the process of marking reference images is specified in such a way that it can be known immediately after a reference image is already known. Not required for temporary prediction reference. However, when it comes to images for inter-view prediction reference, there is a lack of a way of knowing immediately after an image is no longer necessary for inter-view prediction reference. Consequently, the images for inter-view prediction reference can be temporarily stored unnecessarily in the DPB, which reduces the efficiency of using the buffer.
In another example, given the way to recalculate the PicNum, if the mode of operation of the sliding window is in use and the number of short-term and long-term images is equal to the maximum, the short-term reference image that has the smaller FrameNumWrap is marked as "not used as a reference". However, due to the fact that this image is not necessarily the most previous encoded image because the order of the FrameNum in the current JMVM does not follow the decoding order, the sliding window reference image does not operate optimally in the Current MVMA. Additionally, due to the fact that the PicNum is derived from the redefined and scaled FrameNumWrap, the difference between the PicNum values of two encoded images would be scaled on average. For example, it is helpful to assume that there are two images in the same view and that they have a frame_num equal to 3 and 5, respectively. When there is only one view, that is, the bit stream is an AVC stream, then the difference between the two PicNum values would be 2. When encoding the image that has a frame_num equal to 5, if an MMCO command is needed to mark the image that has PicNum equal to 3 as "not used for reference", then the difference of the two values minus 1 is equal to 1, which will be signaled in the MMCO. This value needs 3 bits. However, if there are 256 views, then the difference of the two PicNum values minus 1 would become 511. In this case, 19 bits are required for signaling the value. Consequently, MMCO commands are coded much less efficiently. Normally, the largest number of bits is equal to 2 * log2 (number of views) for an MMCO command of the current JMVM compared to the H.264 / AVC single view encoding.
A fourth set of problems has to do with the process of building the list of reference images specified in JMVM 1.0. The initialization process of reference image lists considers the reference images of all views before the reordering process. However, due to the fact that the images of the other views used for inter-view prediction are appended to the list after truncating the list, the reference images of the other views do not appear in the list of reference images after reorder and truncate in any way. Therefore, consideration of these images in the initialization process is not necessary. In addition, illegal reference images may appear (images that have a view_id different from the current image and are not temporarily aligned with the current image) and repeated inter-view reference images may appear in the list of finally constructed reference images.
The initialization process of the reference image list operates as listed in the following steps: (1) All reference images are included in the initial list regardless of their view_id and if they are temporarily aligned with the current image. In other words, the initial reference image list may contain illegal reference images (images that have a different view_id than the current image and are not temporarily aligned with the current image). However, in the coding of views first, the beginning of the initial list contains reference images of the same view as the current image. (2) Both intra-view and inter-view reference images can be rearranged. After reordering, the top of the list may still contain illegal reference images. (3) The list is truncated, but the truncated list may still contain illegal reference images. (4) The inter-view reference images are appended to the list in the order in which they appear in the SPS MVC extension.
Additionally, the reordering process of the reference image list specified in JMVM 1.0 does not allow the reordering of inter-view frames, which are always placed at the end of the list in the order in which they appear in the MVC extension of SPS This causes less flexibility for the construction of the reference image list, which results in reduced compression efficiency, when the default order of the inter-view reference frames is not optimal or certain inter-view reference frames have more likely to be used for prediction than certain intra-view benchmarks. Additionally, similar to MMCO commands, due to the fact that PicNum is derived from redefined and scaled FrameNumWrap, VLC code words are no longer required to encode RPLR commands that include signaling a difference between PicNum values minus 1 compared to the single view coding of the H.264 / AVC standard.
The document PURVIN PANDIT ET AL. “MVC high-level syntax for random access”, ITU STUDY GROUP 16 -
15
25
35
45
55
65
E07826751
14-08-2014
VIDEO CODING EXPERTS GROUP - ISO / IEC MPEG & ITU-T VCEG (ISO / IEC JTC1 / SC29 / WG11 and ITU-T SG16 Q6), XX, XX, No. M13715, July 12, 2006 (12-07-2006) , discloses a high level syntax in the framework of multi-view video coding. This document defines an anchor image as an image that only allows prediction from other views when the “nal_ref_idc” signal in the NAL unit header is equal to 3 to facilitate random access to the decoder.
Summary of the invention
The present invention provides an improved system and method for implementing efficient management of the buffer of decoded images in multi-view video coding. In one example, a new signal is used to indicate whether decoding of a view can be initiated from a certain image. In a more particular example, this signal is signaled in the header of the NAL unit. In one embodiment, a new signal is used to indicate whether an image is used for inter-view prediction reference, while the nal_ref_idc syntax element only indicates whether an image is used for temporal prediction reference. This signal can also be signaled in the header of the NAL unit. In another example, a set of reference image marking procedures is used to efficiently manage decoded images. These procedures may include both a sliding window and adaptive memory control mechanisms. In another example, a set of new procedures for constructing reference image lists is used and includes both initialization and reordering of reference image lists.
These and other advantages and characteristics of the invention, together with the organization and the manner of operation thereof, will be apparent from the following detailed description when considered together with the attached drawings, where similar elements have similar numbers to along the various drawings described below.
Brief description of the drawings
Figure 1 is an image arrangement in a coding arrangement of the first view; Figure 2 is an image arrangement of a first time coding arrangement; Figure 3 is an illustration of an example of an MVC temporal and inter-view prediction structure; Figure 4 is a general diagram of a system in which the present invention can be implemented; Figure 5 is a perspective view of a mobile device that can be used in the implementation of the present invention; and Figure 6 is a schematic representation of the circuits of the mobile device of Figure 5.
Detailed description of the invention
Figure 4 shows a generic multimedia communication system for use with the present invention. As shown in Figure 4, a data source 100 provides a source signal in an analog, uncompressed digital, or compressed digital format, or any combination of these formats. An encoder 110 encodes the source signal to a bit stream of encoded media. The encoder 110 may be capable of encoding more than one type of media, such as audio and video, or more than one encoder 110 may be required to encode different types of media from the source signal. The encoder 110 may also obtain a synthetically produced input, such as graphics and text, or it may be capable of producing encoded bit streams of synthetic media. Next, only the processing of a bit stream of encoded media of one type of medium is considered to simplify the description. It should be noted, however, that real-time broadcast services typically comprise several streams (usually at least one stream of audio, video and text captioning). It should also be noted that the system may include many encoders, but then only one encoder 110 is considered to simplify the description without a lack of generality.
The bit stream of encoded media is transferred to a storage 120. The storage 120 can comprise any type of mass memory for storing the bit stream of encoded media. The bit stream format of encoded media in storage 120 may be an elementary autonomous bit stream format, or one or more bit streams of encoded media may be encapsulated in a container file. Some systems operate "live", that is, they omit storage and transfer the coded media bit stream from encoder 110 directly to sender 130. The coded media bit stream is then transferred to sender 130, also called server, with based on needs. The format used in the transmission may be an elementary autonomous bit stream format, a packet stream format, or one or more coded media bit streams may be encapsulated in a container file. Encoder 110, storage 120, and transmitter 130 may reside in the same physical device or may be included in separate devices. The encoder 110 and the transmitter 130 can operate with live real-time content, in which case the bit stream of encoded media is normally not stored permanently, but is temporarily stored for small periods of time in the content encoder 110 and / or at sender 130 to smooth variations in the processing delay, in the transfer delay, and in the bit rate of encoded media.
15
25
35
45
55
65
E07826751
14-08-2014
The sender 130 sends the bitstream of encoded media using a stack of communication protocols. The stack may include but is not limited to a Real Time Transport Protocol (RTP), User Datagram Protocol (UDP), and Internet Protocol (IP). When the communication protocol stack is packet-oriented, the sender 130 encapsulates the bitstream of packet-encoded media. For example, when RTP is used, sender 130 encapsulates the bit stream of media encoded in RTP packets according to an RTP payload format. Normally, each type of media has a dedicated RTP payload format. It should be noted again that a system may contain more than one transmitter (130), but for simplicity, the following description only considers one transmitter 130.
The transmitter 130 may or may not be connected to a gateway 140 through a communication network. The gateway 140 can perform different types of functions, such as moving a packet flow according to a communication protocol stack to another communication protocol stack, gathering and bifurcating the data streams, and manipulating the flows of data according to the downlink and / or the receiving capabilities, such as the control of the bit rate of the stream sent in accordance with the prevailing downlink network conditions. Examples of gateways 140 include multipoint conference control units (MCUs), gateways between circuit switched and packet switched video telephony, push-to-talk (PoC) servers, IP encapsulators, in digital video broadcast systems for mobile devices (DVB-H), or decoders that send broadcasts locally broadcast to home wireless networks. When RTP is used, gateway 140 is called the RTP mixer and acts as the end point of an RTP connection.
The system includes one or more receivers 150, normally capable of receiving, demodulating and uncapsulating the transmitted signal to a bit stream of encoded media. The bitstream of encoded media is normally further processed by a decoder 160, whose output is one or more uncompressed media streams. It should be noted that the bit stream to be decoded can be received from a remote device located within virtually any type of network. Additionally, the bit stream can be received from local hardware or software. Finally, a media synthesizer 170 can reproduce the uncompressed media streams, for example with a speaker or a screen. The receiver 150, the decoder 160, and the media synthesizer 170 may reside in the same physical device or may be included in separate devices.
Scalability in terms of bit rate, decoding complexity, and image size is a desirable property for heterogeneous and error-prone environments. This property is desirable in order to counteract limitations such as restrictions on bit rate, display resolution, network throughput, and computing power in a receiving device.
It should be understood that, although the text and examples contained herein may specifically describe a coding process, a person skilled in the art would readily understand that the same concepts and principles also apply to the corresponding decoding process, and vice versa. It should be appreciated that the bit stream to be decoded can be received from a remote device located within virtually any type of network. Additionally, the bit stream can be received from local hardware or software.
The communication devices of the present invention can communicate using various transmission technologies including, but not limited to, multiple code division access (CDMA), global system for mobile communications (GSM), universal mobile telecommunications system (UMTS), time division multiple access (TDMA), frequency division multiple access (FDMA), Transmission control protocol / Internet Protocol (TCP / IP), Short message system (SMS), multimedia message service (MMS), email, instant messaging service (IMS), Bluetooth, IEEE 802.11, etc. A communication device can communicate using various means including, but not limited to radio, infrared, laser, cable connection, and the like.
Figures 5 and 6 show a representative mobile device 12, in which the present invention can be implemented. However, it should be understood that the present invention is not intended to be limited to a particular type of mobile device 12 or another electronic device. Some of the features illustrated in Figures 5 and 6 could be incorporated into any or all of the devices that can be used in the system shown in Figure 4.
The mobile device 12 of Figures 5 and 6 includes a housing 30, a screen 32 in the form of a liquid crystal display, a keyboard 34, a microphone 36, a headset 38, a battery 40, an infrared port 42, a antenna 44, a smart card 46 in the form of a UICC in accordance with an embodiment of the invention, a card reader 48, a radio interface circuit 52, an encoding circuit 54, a controller 56 and a memory 58. Individual circuits and elements are all of a type well known in the art, for example, in the range of Nokia mobile devices.
The present invention provides an improved system and method for implementing efficient management of the buffer of decoded images in multi-view video coding. For
10
15
20
25
30
35
40
E07826751
14-08-2014
address the issue around the fact that the syntax of JMVM does not include signaling an image from which decoding of a certain view can be initiated (unless all views of the time index contain an anchor image), a new signal is signaled indicating whether a view can be accessed from a certain image, that is, if the decoding of a view can be initiated from a certain image. In an embodiment of the invention, this signal is signaled in the heading of NAL units. The following is an example of the syntax and semantics of the signal in accordance with a particular embodiment. However, it is also possible to change the semantics of the anchor_pic_flag syntax element in a similar way instead of adding a new syntax element.
<dl><dt>nal_unit_header_svc_mvc_extension () { </dt><dd>C Descriptor </dd></dl>
<dl><dt>svcmvc_flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>if (! svc_mvc_flag) { </dt><dd /></dl>
<dl><dt>priority_id </dt><dd>Everyone u (6) </dd></dl>
<dl><dt>discardable_flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>temporary_level </dt><dd>Everyone u (3) </dd></dl>
<dl><dt>dependency_id </dt><dd>Everyone u (3) </dd></dl>
<dl><dt>quality_level </dt><dd>Everyone u (2) </dd></dl>
<dl><dt>layer_base_flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>use_base_prediction_flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>fragmented_flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>last_fragment_flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>fragment_order </dt><dd>Everyone u (2) </dd></dl>
<dl><dt>reserved_zero_twobits </dt><dd>Everyone u (2) </dd></dl>
<dl><dt>} else { </dt><dd /></dl>
<dl><dt>view refresh flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>view_subset_id </dt><dd>Everyone u (2) </dd></dl>
<dl><dt>view_level </dt><dd>Everyone u (3) </dd></dl>
<dl><dt>anchor_pic_flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>view_id </dt><dd>Everyone u (10) </dd></dl>
<dl><dt>reserved_zero_five_bits </dt><dd>Everyone u (6) </dd></dl>
<dl><dt>} </dt><dd /></dl>
<dl><dt>nalUnitHeaderBytes + = 3 </dt><dd /></dl>
<dl><dt>} </dt><dd /></dl>
For a certain image in a view, all images in the same temporary site of other views that use inter-view prediction are called "direct dependency view images", and all images in the same temporary site of other views that are require decoding the current image are called "dependency images".
The semantics of view_refresh_flag can be specified in four ways in one embodiment. A first way of specifying the semantics of view_refresh_flag implies that view_refresh_flag indicates that the current image and all subsequent images in the output order in the same view can be decoded correctly when all direct dependency view images of the current and subsequent images in The same view are also (possibly partially) decoded without decoding any preceding images in the same view or in other views. This implies that (1) none of the dependency views fall on any preceding image in the order of decoding in any view, or (2) if any of the dependency views images fall on any preceding image in the order of decoding in any view, then only the intracoded areas in a restricted manner of the direct dependence view images of the current and subsequent images in the same view are used for inter-view prediction. A restricted intra-coded area does not use data from neighboring intercoded areas for intra-prediction.
A second way of specifying the semantics of view_refresh_flag implies that view_refresh_flag indicates that the current image and all subsequent images in the order of decoding in the same view can be decoded correctly when all images of views directly dependent on the current image and subsequent images in the same view they are also completely decoded or, in one embodiment, partially without decoding any preceding image.
A third way to specify the semantics of view_refresh_flag implies that view_refresh_flag indicates that the current image and all subsequent images in the output order in the same view can be decoded correctly when all dependency view images of the current and subsequent images in the same view are also completely decoded or, in one embodiment, partially. This definition is analogous to an intra image that initiates an open GOP in single view coding. In terms of memory text, this option can be written as follows: A view_refresh_flag equal to 1 indicates that the current image and any subsequent image in the decoding order in the same view as the current image and following the current image in the order Output does not refer to an image that precedes the current image in the decoding order in the interprediction process. A view_refresh_flag equal to 0 indicates that the current image or a
10
15
20
25
30
35
40
E07826751
14-08-2014
Subsequent image in the decoding order in the same view as the current image and following the current image in the output order may refer to an image that precedes the current image in the decoding order in the interprediction process.
A fourth way of specifying the semantics of view_refresh_flag implies that view_refresh_flag indicates that the current image and all subsequent images in the order of decoding in the same view can be decoded correctly when all dependency view images of the current and subsequent images in the same view are also completely decoded or, in one embodiment, partially. This definition is analogous to an intra image that initiates a closed GOP in single view coding.
The view_refresh_flag can be used in a system such as that illustrated in Figure 4. In this situation, the receiver 150 has received, or the decoder 160 has decoded, only a certain subset M of all available N views, excluding the subset view A Due to a user action, for example, receiver 150 or decoder 160 would like to receive or decode, respectively, view A from now on. The decoder can begin decoding view A of the first image, with view_refresh_flag equal to 1 in view A. If view A was not received, then receiver 150 may indicate to gateway 140 or sender 130 to include images encoded from view A in the transmitted bit stream. Gateway 140 or sender 130 can wait until the next image has view_refresh_flag equal to 1 in view A before sending any image from view A in order to avoid sending unnecessary images from view A to decoder 160 I could not decode successfully.
To address the second issue discussed above, a new signal is signaled to indicate whether a view is used for inter-view prediction reference, and the nal_ref_idc syntax element only indicates whether an image is used for temporal prediction reference. In a particular embodiment, this signal is signaled in the heading of NAL units. The following is an example of the syntax and semantics of the signal.
<dl><dt>nal_unit_header_svc_mvc_extension () { </dt><dd>C Descriptor </dd></dl>
<dl><dt>svcmvc_flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>if (! svc_mvc_flag) { </dt><dd /></dl>
<dl><dt>priority_id </dt><dd>Everyone u (6) </dd></dl>
<dl><dt>discardable_flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>temporary_level </dt><dd>Everyone u (3) </dd></dl>
<dl><dt>dependency_id </dt><dd>Everyone u (3) </dd></dl>
<dl><dt>quality_level </dt><dd>Everyone u (2) </dd></dl>
<dl><dt>layer_base_flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>use_base_prediction_flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>fragmented_flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>last_fragment_flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>fragment_order </dt><dd>Everyone u (2) </dd></dl>
<dl><dt>reserved_zero_twobits </dt><dd>Everyone u (2) </dd></dl>
<dl><dt>} else { </dt><dd /></dl>
<dl><dt>view refresh flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>view_subset_id </dt><dd>Everyone u (2) </dd></dl>
<dl><dt>view_level </dt><dd>Everyone u (3) </dd></dl>
<dl><dt>anchor_pic_flag </dt><dd>Everyone u (1) </dd></dl>
<dl><dt>view_id </dt><dd>Everyone u (10) </dd></dl>
<dl><dt>reserved_zero_five_bits </dt><dd>Everyone u (6) </dd></dl>
<dl><dt>} </dt><dd /></dl>
<dl><dt>nalUnitHeaderBytes + = 3 </dt><dd /></dl>
<dl><dt>} </dt><dd /></dl>
An inter_view_reference_flag equal to 0 indicates that the current image is not used as an intervened reference image. An inter_view_refresh_flag equal to 1 indicates that the current image is used as an intervened reference image. It is inferred that the value of inter_view_refresh_flag is equal to 1 when profile_idc indicates an MVC profile and view_id is 0. When an image is decoded, all images that have an inter_view_refresh_flag equal to 1 and with the same time axis as the current image are called inter-view images of the current image.
The inter_view_refresh_flag can be used on a gateway 140, also referred to as a media knowledge network element (MANE). When an image is not used as inter-view reference and intra-view reference (inter_view_refresh_flag is equal to 0 and nal_ref_idc is equal to 0), a MANE may choose not to send it without consequences in decoding the remaining bit stream. When an image is not used as an inter-view reference but is used as an intra-view reference, a MANE should deposit the image only if it also deposits the transmission of dependent views. When an image is not used as an interview reference, but is used as an intra-view reference, a MANE should deposit the image only if it is not required or wishes to decode the view where the image resides.
15
25
35
45
55
65
E07826751
14-08-2014
Regarding the issue of the reference image marking process specified in JMVM 1.0 that is not capable of efficiently handling the management of decoded images that must be temporarily stored for inter-view prediction, the inter_view_refresh_flag signal is reused. Images with an inter_view_refresh_flag equal to 1 can be marked using any of three procedures.
A first procedure for marking images with an inter_view_refresh_flag equal to 1 includes storing inter-viewed reference images temporarily as long-term images. In the coding process, each image used for inter-view prediction is indicated in the bit stream to be marked as "used for long-term reference". One way to indicate marking as "used for long-term reference" is inter_view_refresh_flag. The decoder responds to the indication by marking the image as "used for long-term reference" and "long-term temporary reference of multiple views." Any memory management control operation directed to a comma-marked image "used for long-term reference" and "long-term multi-view temporary reference" is stored temporarily. When all images on the time axis are encoded or decoded, all images marked "used for long-term reference" and "long-term temporary reference of multiple views" are no longer marked as "used for long-term reference" and "long-term temporary view of multiple views", and the reference image marking is re-performed in its decoding order using either the sliding window operation or intermediate memory management control operations (whichever applies to a particular image). For example, if an image is used for interprediction (that is, the value of nal_ref_idc is greater than 0), it is remarked as "used for short-term reference". If the image is not used for interprediction (that is, nal_ref_idc is equal to 0), it is marked as "not used for reference". Usually, there are only two cases for the image on a certain time axis: all images are reference images for interprediction, or no image is a reference image for interprediction. This last operation can be performed after the last VCL NAL unit has been decoded on the time axis, or before the next access unit or the next image on the rear time axis is decoded. In the decoding process, the operation at this stage can be implicitly activated by the change in the time axis, or it can be explicitly signaled for example, as an MMCO command. With this procedure, the inter-view reference images have the same influence as the long-term reference images for weighted prediction and in the direct temporal mode.
A second procedure for marking images with an inter_view_refresh_flag equal to 1 includes marking the inter-view reference images as "used for inter-view reference". With this procedure the marking of the reference image for interprediction (marking as "used for short-term reference" and "used for long-term reference") remains unchanged compared to the AVC standard. For processes related to temporary direct mode and weighted prediction, images marked "used for inter-view reference", that is, those inter-view reference images that share the same time axis as the current image, are treated identically to the long-term reference images. When all images on the time axis are encoded or decoded, all images marked as "used for inter-view reference" are no longer marked as "used for inter-view reference".
It is appreciated that the removal of the "used for inter-view reference" marking after all images on the time axis are processed is only one embodiment of the invention. Marking as "used for inter-view reference" could also be removed at other times in the decoding process. For example, marking as "used for inter-view reference" of a particular image can be removed as soon as the current image or any subsequent image ceases to depend directly or indirectly on the image according to the view dependence signaling included in the MVC extension of SPS.
The operation of no longer marking the appropriate images as "used for inter-view reference" can be performed after the last VCL NAL unit on the time axis is decoded or before the next access unit or the next image is decoded the posterior temporal axis. In the decoding process, this can be implicitly activated by the change in the time axis or it can be explicitly signaled, for example, as an MMCO command.
With this particular procedure, inter-view reference images have the same influence as long-term reference images for weighted prediction and in direct temporal mode. In other words, this procedure has the same effect as the first procedure discussed above for weighted prediction and in direct temporal mode.
In the present procedure, an improved sliding window mechanism can be applied to remove the "used for inter-view reference" marking of images used only for inter-view prediction, ie images that have nal_red_idc equal to 0 and marked as "used for inter-view reference ". This improved sliding window mechanism uses a variable, for example, called num_inter_view_ref_frames, preferably signaled in the SPS extension for MVC, such that when the number of images marked "used for inter-view reference" and having nal_ref_idc equal to 0 is equal to num_inter_view_ref_frames, then the one that was first decoded becomes unmarked as "used for inter-view reference".
15
25
35
45
55
65
E07826751
14-08-2014
Consequently, if the image does not need to be sent either (sent or not intentionally sent out), the decoder can invoke a process to remove the image from the DPB so that a newly decoded image can be stored in the DPB.
A third procedure for marking images with an inter_view_reference_flag equal to 1 includes marking images after decoding all images of the same time axis / time index. Instead of marking an image immediately after decoding, this procedure is based on the idea that images are marked after decoding all images of the same time axis (ie, the same time index). The sliding window or the marking of adaptive reference images as indicated in each of the encoded images is performed in the order in which the images were decoded. For processes related to temporal direct mode and weighted prediction, marked images of the same temporal axis as the current image are treated identically to long-term reference images. Inter-view reference images of the same time axis as the current image are included in the construction of the initial reference image lists and can be rearranged based on their view_id or long-term reference indices are assigned first, and can be then re-correlate based on the long-term benchmark.
As discussed above, given how to recalculate the PicNum, if the sliding window operation mode is in use and the number of short-term and long-term images is equal to the maximum, the short-term reference image that has the smaller FrameNumWrap is marked as "not used for reference". However, due to the fact that this image is not necessarily the most previous encoded image because the order of the FrameNum in the current JMVM does not follow the decoding order, the marking of the sliding window reference image does not operate optimally in the current MVMA. To solve this problem, and compared to the JMVM standard, the FrameNum and FrameNumWrap variables are not redefined / scaled, that is, their definition remains unchanged compared to the AVC standard. It is designed that short-term images can be managed automatically by the mechanism first in, first out of the sliding window. Only a slight modification of the sliding window mechanism compared to the JMVM 1.0 is required. The modifications are as follows, with the new text represented in italics:
G.8.2.5.3 Marking process of sliding reference decoded reference images This process is invoked when adaptive_ref_pic_marking_mode_flag is equal to 0. Only reference images that have the same view_id as the current line are considered to be in the process, including the calculation of numShortTerm and numLongTerm, and the applied value of num_ref_frames.
In the above procedure, the total number of reference frames for the entire MVC bit stream, indicating the size of the buffer for storing images used for intra-view or inter-view reference of a whole bit stream of MVC, it must be equal to the sum of the num_ref_frames values applied for all views contained in the MVC bit stream plus the maximum number of intervened reference frames to decode the MVC bit stream. Alternatively, the sliding window can be performed globally for all images in all views.
For first time coding, the sliding window process is defined as follows, with new text for JMVM 1.0 represented in italics:
G.8.2.5.3 Marking process of decoded reference images of sliding window……
-When numShortTerm + numLongTerm is equal to Max (num_ref_frames, 1), the condition that numShortTerm is greater than 0 must be met, and the short-term reference table, the pair of complementary reference fields or non-peer reference field that is selected by the following rule is marked as "not used for reference". When it is a table or a pair of complementary fields, both fields are also marked as "not used for reference".
* The selection rule is: of all those images with the smallest value of FrameNrumWrap, the first one is selected in the decoding order. The decoding order of these images can be indicated by the value of view_id, or the dependency information of views signaled in the SPS of the MVC extension.
For first time coding, the sliding window process is defined as follows, with new text for JMVM 1.0 represented in italics:
G.8.2.5.3 Marking process of decoded reference images of sliding window……
-When numShortTerm + numLongTerm is equal to Max (num_ref_frames, 1), the
E07826751
14-08-2014
provided that numShortTerm is greater than 0, and the short-term reference table, the pair of complementary reference fields or non-peer reference field that is selected by the following rule is marked as "not used for reference". When it is a table or a pair of complementary fields, both fields are also marked as "not used for reference".
5 * The selection rule is: of all those images of the previous decoded view, the one with the smallest FrameNumWrap value is selected. The decoding order of the views can be indicated by the value of view_id, to the view dependency information signaled in the SPS of the MVC extension.
10 As discussed earlier, due to the fact that PicNum is derived from the redefined and scaled FrameNumWrap, the difference between the PicNum values of the two encoded images would be scaled on average. For example, it is useful to assume that there are two images in the same view and that they have frame_num equal to 3 and 5, respectively. When there is only one view, that is, the bit stream is an AVC stream, then the difference between the two PicNum values would be 2. When encoding the image that has frame_num equal to 5, if a
fifteen MMCO command to mark the image that has PicNum equal to 3 as "not used for reference", then the difference of the two values minus 1 is equal to 1, which will be signaled in the MMCO. This value needs 3 bits. However, if there are 256 views, then the difference of the two PicNum values minus 1 would be 511. In this case, 19 bits are required to signal the value. Consequently, MMCO commands are coded with much less efficiency. Normally, the largest number of bits is equal to 2 * log2 (number of views) for a command
twenty MMCO of the current JMVM compared to the single view encoding of H.264 / AVC.
To solve this problem and in contrast to the JMVM standard, the FrameNum and FrameNumWrap variables are not redefined / scaled, which is the same as in the AVC standard. In most cases, it is not required from the point of view of the size of DPB that an image contains an MMCO command to remove an image that does not belong to the same view nor does it belong to the same time axis as the current image. Even some of the images are no longer necessary for reference and, therefore, can be marked as "not used for reference". In this case, dialing can be done using the sliding window process or postponed to the next image encoded with the same view_id. Therefore, MMCO commands are restricted only to mark images as "not used as a reference" for images belonging to the same view or to the
30 same time axis, although the DBP can contain images of different views or different time axes.
The modification of JMVM 1.0 for marking intra-view reference images is as follows, with the changes shown in italics:
35 G.8.2.5.4.1 Process of marking a short-term reference image as "not used as a reference" This process is invoked when adaptive_pic_marking_mode_flag is equal to 1. Only reference images that have the same view_id as the current line They are considered in this process.
40 The syntax and semantics for marking reference images can be as follows:
<dl><dt>slice_header () { </dt><dd>C Descriptor </dd></dl>
<dl><dt>… </dt><dd /></dl>
<dl><dt>if (nal_ref_ido! = 0) </dt><dd /></dl>
<dl><dt>dec_ref_pic_marking () </dt><dd> 2 </dd></dl>
<dl><dt>if (inter_view_reference_flag) </dt><dd /></dl>
<dl><dt>dec_view_ref_pic_marking_mvc () </dt><dd> 2 </dd></dl>
<dl><dt>} </dt><dd /></dl>
<dl><dt>dec_view_ref_pic_marking mvc () { </dt><dd>C Descriptor </dd></dl>
<dl><dt>adaptive_view_ref_pic_marking_mode_flag </dt><dd>two u (1) </dd></dl>
<dl><dt>if (adaptive_view_ref_pic_marking_mode_flag) </dt><dd /></dl>
<dl><dt>do { </dt><dd /></dl>
<dl><dt>view_memory_management_control_operation </dt><dd>two eu (v) </dd></dl>
<dl><dt>if (view_memory_management_control_operation == 1 II view_memory_management_control_operation == 2) </dt><dd /></dl>
<dl><dt>abs_difference_of_view_id_minus1 </dt><dd>two eu (v) </dd></dl>
<dl><dt>} while (view_memory_management_control_operation! = 0) </dt><dd /></dl>
<dl><dt>} </dt><dd /></dl>
<dl><dt>} </dt><dd /></dl>
Memory management management control operation The values of the memory management control operation (view_memory_management_control_operation) are as follows
E07826751
14-08-2014
<dl><dt>view_memorymanagement_control_operation </dt><dd>Memory management control operation </dd></dl>
<dl><dt>0 </dt><dd>End the view_memory_ management_controloperation cycle </dd></dl>
<dl><dt>1 </dt><dd>Remove the "used for reference between views" mark or mark an image as "not used for reference", abs_difference_of_view_id_minus1 is present and corresponds to a difference to subtract from current view_id </dd></dl>
<dl><dt>2 </dt><dd>Remove the "used for reference between views" mark or mark an image as "not used for reference", abs_difference_of_view_id_minus1 is present and corresponds to a difference to add to current view_id </dd></dl>
The adaptive_view_ref_pic_marking_mode_flag specifies whether the sliding window mechanism (when equal to 0) or the adaptive reference image marking process (when equal to 1) is in use.
5 The modified decoding process for marking inter-view reference images is as follows:
8.2.5.5.2 Marking inter-view images
This process is invoked when view_memory_management_control_operation is equal to 1. 10 Specify viewlDX as follows.
if (view memory management control_operation == 1) viewlDX = CurrViewid - (difference_of_view_id_minus 1 + 1) 15 else if (view_memory_management_control_operation == 2) viewlDX = CurrViewld + (difference_of_view_id_minus + 1)
To allow scalability, that is, the ability to choose which views are transmitted, sent, or decoded, memory management control operations can be restricted as follows.
twenty If currTemporalLevel is equal to temporal_level of the current image and dependentViews is a set of views that depend on the current view, an MMCO command can only target an image that has a temporary_level equal to or greater than currTemporalLevel and is within dependentViews. To allow this, MMCO commands are appended with an indication of view_id or new MMCO commands are specified with an indication of view_id.
25 In order to solve these problems related to the process of building reference image lists described above, the variable FrameNum and FrameNumWrap are not redefined / scaled. This is the same action that occurs in the AVC standard and contrasts with the JMVM standard, where the variables are redefined / rescaled. The modification of JMVM 1.0 is as shown below, with changes shown
30 in italics:
In 8.2.4.3.1, the process of rearranging reference image lists for short-term reference images, 8-38 should be changed as:
35 for (cldx = num ref idx lX active minus1 + 1; cIdx> refIdxLX; cIdx--)
RefPicListX [cIdx] = RefPicListX [cIdx -1] RefPicListX [refIdxLX ++] = short-term reference image with PicNum equal to picNumLX and view_id equal to CurrViewlD nldx = ref IdxLX
40 for (cIdx = refIdxLX; cldx <= num_ref_idx_1X_active_minus1 + 1; cldx ++) (8-38) // if (PicNumF (RefPicListX rcIdx])! = picNumLX) if (PicNumF (RefPicListX [cIcbxL) [cIdx]! = CurrViewlD) RefPicListX [nIdx ++] = RefPicListX [cIdx]
Four. Five Where CurrViewID is the view_id of the current decoding image.
Regarding the problems associated with the initialization process of reference image lists discussed above, these problems can be solved by appreciating that only frames , fields, or pairs of fields belonging to the same view as the current line can be considered in the process of initialization In terms
fifty of JMVM 1.0, this language can be added to the beginning of each of the subclasses 8.2.4.2.1 "Initialization process for the list of reference images for P and SP lines in frames" through 8.2.4.2.5 "Process initialization for reference image lists in the fields ".
10
15
20
25
30
35
40
45
E07826751
14-08-2014
With respect to other issues that relate to the process of constructing reference image lists, several procedures can be used to efficiently reorder both inter-view images and images used for intra-prediction. A first procedure of such procedures involves placing inter-view reference images in front of intra-view reference images, as well as specifying separate RPLR processes for inter-view images and images for intra-view prediction. Images used for intra-view prediction are also called intra-view images. In this procedure, the initialization process of reference image lists for intra-view images is performed as specified above, followed by the RPLR reordering process and the list truncation process for intraview images. Next, the inter-view images are attached to the list after the intra-view images. Finally, each inter-view image can be additionally selected and placed in a specific entry in the reference image list using the following syntax, semantics and decoding process, modified from JMVM 1.0. The procedure is applicable to both refPicList0 and refPicListl, if present.
<dl><dt>ref_pic list_reordering () { </dt><dd>C Descriptor </dd></dl>
<dl><dt>if (slice_type! = I && slice_type! = YES) { </dt><dd /></dl>
<dl><dt>… </dt><dd /></dl>
<dl><dt>} </dt><dd /></dl>
<dl><dt>if (svc_mvc_flag) </dt><dd /></dl>
<dl><dt>{ </dt><dd /></dl>
<dl><dt>view_ref_pic_list_reordering_flag_10 </dt><dd>two u (1) </dd></dl>
<dl><dt>if (view_ref_pic_list_reordering_flag_10) </dt><dd /></dl>
<dl><dt>do { </dt><dd /></dl>
<dl><dt>view_reordering_idc </dt><dd>two eu (v) </dd></dl>
<dl><dt>if (view_reordering_idc == 0 II view_reordering_idc == 1) </dt><dd /></dl>
<dl><dt>abs_diff_view_idx_minus1 </dt><dd>two eu (v) </dd></dl>
<dl><dt>ref_idx </dt><dd>two eu (v) </dd></dl>
<dl><dt>} while (view_reordering_idc! = 2) </dt><dd /></dl>
<dl><dt>} </dt><dd /></dl>
With respect to the syntax, a view_ref_ pic_ list_reordering_flag_lX (X is 0 or 1) equal to 1 specifies that the view_reordering_idc syntax element is present for refPicListX. A view_ref_pic_list_reordering_flag_lX equal to 0 specifies that the view_reordering_idc syntax element is not present for refPicListX. The ref_idx indicates the entry that the inter-view image will place in the list of reference images.
The abs _ diff _ view_ idx _minus1 plus 1 specifies the absolute difference between the image view index that will be placed at the entry of the reference image list indicated by ref_idx and the prediction value of the view index. abs_diff_view_idx_minus1 is in the range of 0 to num_multiview_refs_for_listX [view id] -1. The num_multiview_refs_for_listX [] refers to anchor_reference_view_for_list_X [curr_view_id] [] for an anchor image non_anchor_reference_view_for_list_X [curr_view_id] [] for a non-anchor image, where curr_view_id is equal to view_id of the view that contains the current line. An index of views of an inter-view image indicates the order of view_id of the inter-view image that appears in the MVC SPS extension. For an image with a view index equal to view_index, view_id is equal to num_multiview_refs_for_listX [view index].
The abs_diff_view_idx_minus1 plus 1 specifies the absolute difference between the index of views of the image that is being moved to the current index in the list and the prediction value of list indexes. abs_diff_view_idx_minus1 is in the range of 0 to num_multiview_refs_for_listX [view id] -1. The num_multiview_refs_for_listX [] refers to anchor_reference_view_for_list_X [curr_view_id] [] for an anchor image and non_anchor_reference_view_for_list_X [curr view id] [] for a non-anchor image, where curr_view_id is equal to view_id of the view containing the current line. An index of views of an inter-view image indicates the order of view_id of the inter-view image that appears in the MVC SPS extension. For an image with a view index equal to view_index, view_id is equal to num_multiview_refs_for_listX [view_index].
The decoding process is as follows:
The definition of NumRefldxLXActive is done after truncation for intra-view images:
NumRefldxLXActive = num_ref_idx_IX_active_minus1 + 1 + num_multiview_refs_for_listX [view id]
G.8.2.4.3.3 Reordering process of reference image lists for inter-view images. The entries to this process are the list of reference images RefPicListX (being X 0 or 1). The outputs of this process are a list of possibly modified reference images RefPicListX (being X 0 or 1).
The picViewIdxLX variable is derived as follows.
E07826751
14-08-2014
If view_reordering_idc is equal to 0 picViewIdxLX = picViewIdxLXPred - (abs_diff_view_idx_minus1 + 1) Otherwise (view_reordering_idc is equal to 1), picViewIdxLX = picViewIdxLXPred + (abs_diff_view_idx_minus1 +)
5 picViewIdxLXPred is the prediction value for the picViewIdxLX variable. When the process specified in this subclause is invoked for the first time for a line (that is, for the first occurrence of view_reordering_idc equal to 0 or 1 in the syntax of ref_pic_list_reordering ()), picViewIdxL0Pred and picViewldxL1Pred are initially set equal to 0. After of each picViewIdxLX assignment, the value of picViewIdxLX is assigned to picViewIdxLXPred. The following procedure is carried out to place the inter-view image with the index of views equal to
10 picViewIdxLX at the index position, ref_Idx changes the position of any other image remaining for later in the list, as follows. For (cldx = NumRefIdxLXActive; c_dx> ref_Idx; cIdx--)
RefPicListX [cIdx] = RefPicListX [cIdx -1] RefPicListX [ref Idx] = inter-view reference image with view id equal to
fifteen Reference_view_for_list_X [picViewIdxLX] nIdx = ref Idx + 1; for (cIdx = refIdxLX; cIdx <= NumRefIdxLXActive; cIdx ++)
if (ViewID (RefPicListX [cIdx])! = TargetViewIDI1Time (RefPicListX [cIdx])! = TargetTime) RefPicListX [nIdx ++] = RefPicListX [cIdx]
twenty preView_id = PicViewIDLX TargetViewID and TargetTime indicate the view_id or time axis value of the target reference image to be reordered, and Time (pic) returns the time axis value of the pic image.
In accordance with a second procedure to efficiently reorder inter-view images and images
25 used for intra-prediction, the initialization process of reference image lists for intra-view images is performed as specified above, and the inter-view images are appended to the end of the list in the order in which they appear in the MVC SPS extension. Next, an RPLR reordering process is applied for both intra-view and inter-view images, followed by a list truncation process. The syntax, semantics and process, as a sample of modified decoding based on JMVM, are as follows:
30 Reordering syntax of the reference image list.
<dl><dt>ref_pic_list_reordering_ () { </dt><dd>C Descriptor </dd></dl>
<dl><dt>if (slice_type! = I && slice_type! =) { </dt><dd /></dl>
<dl><dt>ref_pic_list_reordering_flag_10 </dt><dd>two u (1) </dd></dl>
<dl><dt>if (ref_pic_list_reordering_flag_10) </dt><dd /></dl>
<dl><dt>do { </dt><dd /></dl>
<dl><dt>reordering_of_pic_nums_idc </dt><dd>two eu (v) </dd></dl>
<dl><dt>if (reordering_of_pic_nums_idc == 0 II reordering_of_pic_nums_idc == 1) </dt><dd /></dl>
<dl><dt>abs_diff_pic_num_minus1 </dt><dd>two eu (v) </dd></dl>
<dl><dt>else if (reordering_of_pic_nums_idc == 2) </dt><dd /></dl>
<dl><dt>long_term_pic_num </dt><dd>two eu (v) </dd></dl>
<dl><dt>if (reordering_of_pic_nums idc == 4 II reordering_of_pic_nums_idc == 5) </dt><dd /></dl>
<dl><dt>abs_diff_view_idx_minus1 </dt><dd>two eu (v) </dd></dl>
<dl><dt>} while (reordering_of_pic_nums_idc! = 3) </dt><dd /></dl>
<dl><dt>} </dt><dd /></dl>
<dl><dt>if (slice type == B II slice_type == EB) { </dt><dd /></dl>
<dl><dt>ref_pic_list_reordering_flag_I1 </dt><dd>two u (1) </dd></dl>
<dl><dt>if (ref_pic_list_reordering_flag_I1) </dt><dd /></dl>
<dl><dt>do { </dt><dd /></dl>
<dl><dt>reordering_of_pic_nums_idc </dt><dd>two eu (v) </dd></dl>
<dl><dt>if (reordering_of_pic_nums_idc == 0 II reordering_of_pic_nums_idc == 1) </dt><dd /></dl>
<dl><dt>abs_diff_pic_num_minus1 </dt><dd>two eu (v) </dd></dl>
<dl><dt>else if (reordering_of_pic_nums_idc == 2) </dt><dd /></dl>
<dl><dt>long_term_pic_num </dt><dd>two eu (v) </dd></dl>
<dl><dt>if (reordering_of_pic_nums_idc == 4 II reordering_of_pic_nums_idc == 5) </dt><dd /></dl>
<dl><dt>abs_diff_view_idx_minus1 </dt><dd>two eu (v) </dd></dl>
<dl><dt>} while (reordering_of_pic_idc! = 3) </dt><dd /></dl>
<dl><dt>} </dt><dd /></dl>
<dl><dt>} </dt><dd /></dl>
E07826751
14-08-2014
G.7.4.3.1 Semantics of reordering of reference image lists Table
<dl><dt>Reordering_of_pic_nums_idc operations to reorder reference image lists </dt><dd /></dl>
<dl><dt>reordering_of_pic_nums_idc </dt><dd>Specified rearrangement </dd></dl>
<dl><dt>0 </dt><dd>abs_diff_pic_num_minus1 is present and corresponds to a difference to subtract from an image number prediction value </dd></dl>
<dl><dt>1 </dt><dd>abs_diff_pic_num_minus1 is present and corresponds to a difference to add to an image number prediction value </dd></dl>
<dl><dt>2 </dt><dd>long_term_pic_num is present and specifies the number of long-term images for a reference image </dd></dl>
<dl><dt>3 </dt><dd>End of cycle to reorder the initial reference image list </dd></dl>
<dl><dt>4 </dt><dd>abs_diff_view_idx_minus1 is present and corresponds to a difference to subtract from a view index prediction value </dd></dl>
<dl><dt>5 </dt><dd>abs_diff_view_idx_minus1 is present and corresponds to a difference to add to a view index prediction value </dd></dl>
5 The reordering_of_pic_nums_idc, along with abs_diff_pic_num_minus1 or long_term_pic_num, specifies which reference images are rendered again. The reordering_of_pic_nums_idc, together with abs_diff_view_idx_minus1, specifies which inter-view reference images are re-rendered. The reordering_of_pic_nums_idc values are specified in the previous table. The value of the first reordering_of_pic_nums_idc
10 which follows immediately after ref_pic_list_reordering_flag_10 or ref_pic_list_reordering_flag_I1 is not equal to
3.
The abs_diff_view_idx_minus1 plus 1 specifies the absolute difference between the index of views of the image to place in the current index in the list of reference images and the prediction value of the index of views. 15 abs_diff_view_idx_minus1 is in the range of 0 to num_multiview_refs_for_listX [view id] -1. num_multiview_refs_for_listX [] refers to anchor_reference_view_for_list_X [curr_view_id] [] for an anchor image and non_anchor_reference_view_for_list_X [curr_view_id] [] for a non-anchor image, where curr_view_id is equal to view_id of the view that contains the current line. An index of views of an inter-view image indicates the order of the view_id of the inter-view image that appears in the MVC SPS extension. For an image with an index of views
twenty equal to view_index, the view_id is equal to num_multiview_refs_for_listX [view_index].
The reordering process can be described as follows:
G.8.2.4.3.3 Reordering process of reference image lists for inter-view images.
25 The input to this process is a refIdxLX index (being X 0 or 1). The output of this process is an increased index refIdxLX. The picViewldxLX variable is derived as follows. If reordering_of_pic_nums_idc is equal to 4
30 picViewIdxLX = picViewIdxLX Pred- (abs_diff_view_idx_minus1 +1) Otherwise (reordering_of_pic_nums_idc is equal to 5), picViewldxLX = picViewIdxLXPred + (abs_diff_view_idx_minus1 + 1) When the process specified in this subclause is invoked the first time for a line (that is, for the first occurrence of
35 reordering_of_pic_nums_idc equal to 4 or 5 in the syntax ref_pic_list_reordering ()), picViewldxL0Pred and picViewIdxL1Pred are initially set equal to 0. After each assignment of picViewIdxLX, the value of picViewldxLX is assigned to picViewldxLXPred.
The following procedure is carried out to place the inter-view image with a view index equal to 40 picViewIdxLX within the position of the refIdxLX index, change the position of any other remaining image for later in the list, and increase the value of refIdxLX.
for (cIdx = num_ref_idx_IX_active_minus1 + 1; cIdx> refIdxLX; cIdx--) RefPicListX [cIdx] = RefPicListX [cIdx-1] 45 RefPicListX [refIdxLX ++] = reference image inter-views with view_d viewx ID_dx_View_View
15
25
35
45
55
65
E07826751
14-08-2014
nIdx = refIdxLX for (cIdx = refIdxLX; cIdx <= num_ref_idx_lX_active_minus1 + 1; cldx ++) if (ViewID (RefPicListX [cIdx])! = TargetViewID II Time (RefPicListX [cIdx]) Ref. ]
Where TargetViewlD and TargetTime indicate the view_id or time axis value of the target reference image to be reordered, and Time (pic) returns the time axis value of the pic image.
According to a third procedure to efficiently reorder both inter-view images and images used for intra-prediction, the initial reference image list contains images marked as "used as a short-term reference" or "used as a long-term reference" and that have the same view_id as the current image. In addition, the initial reference image list contains the images that can be used for inter-view prediction. The images used for inter-view prediction are concluded from the extension of the sequence parameter set for MVC and can also be concluded from inter_view_reference_flag. Inter-view prediction images are assigned certain long-term benchmarks for the decoding process of this image. The long-term reference indices assigned for inter-view reference images may, for example, be the first N reference indices, and the indices for intra-long-term images may be modified to be equal to their previous value + N for the decoding process of this image, where N represents the number of inter-view reference images. As an alternative, the indicated long-term benchmarks may be in the range of MaxLongTermFrameldx + 1 to MaxLongTermFrameldx + N, inclusive. Alternatively, the sequence parameter set extension for MVC may contain a syntax element named here as start_lt_index_for_rplr, and the long-term indexes assigned assign the start_lt_index_for_rplr interval, inclusive, to start_lt_index_for_rplr + N, exclusive. The long-term indexes available for inter-view reference images can be assigned in the order of view_id, in the order of the cameras, or in the order in which the view dependencies are listed in the extension of the sequence parameter set for MVC. The RPLR commands (syntax and semantics) remain unchanged compared to the H.264 / AVC standard.
For temporary direct relationship processing, for example, for motion vector scaling, if both reference images are inter-prediction images (intra-view prediction), (that is, the reference images are not marked "used for" inter-view reference "), then the AVC decoding process is followed. If one of the two reference images is an inter-prediction image and the other is an inter-view prediction image, the inter-view prediction image is treated as a long-term reference image. Otherwise (if both reference images are inter-view images), the view_id or indicator values of the order of the cameras are used instead of the POC values for scaling the motion vector.
For the derivation of prediction weights for implicit weighted prediction, the following process is performed. If both reference images are inter-prediction images (inter-view prediction) (that is, they are not marked as "used for inter-view reference"), the AVC decoding process is followed. If one of the two reference images is an inter-prediction image and the other is an inter-predicted prediction image, then the inter-view prediction image is treated as a long-term reference image. Otherwise (that is, both images are inter-view prediction images), the values of view_id or indicators of the order of the cameras are used instead of the POC values for the derivation of the weighted prediction parameters.
The present invention is described in the general context of procedural steps, which can be implemented in one embodiment by a program product that includes computer executable instructions, such as a program code, implemented in a computer reading medium and executed by Computers in network environments. Examples of computer reading media may include various types of storage media including, but not limited to, electronic device memory units, random access memory (RAM), read-only memory (ROM), compact discs (CDs) , digital versatile discs (DVDs) and other internal or external storage devices. Typically, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. The computer executable instructions, the associated data structures, and the program modules represent examples of program code for executing steps of the procedures described herein. The particular sequence of such executable instructions or associated data structures represent examples of corresponding acts to implement the functions described in such steps.
The software implementations of the present invention could be achieved with standard programming techniques with rule-based logic and other logic to achieve the various database search stages, correlation stages, comparison stages and decision stages. It will also be appreciated that the words "component" and "module", as used herein and in the claims, are intended to encompass implementations using one or more lines of software code, and / or hardware implementations, and / or equipment for the Receiving manual data entry.
E07826751
14-08-2014
The above description of embodiments of the present invention has been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the present invention to the precise manner described, and modifications and variations are possible in view of the above teachings or may be acquired from the practice of the present invention. The embodiments were chosen and described in order to explain the principles of the present invention and their practical application to allow the person skilled in the art to use the present invention in various embodiments and with various modifications to fit the particular use contemplated.
Contents20
5 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5
50 members in 14 offices
Priority claims9
| Document | Office | Kind | Date |
|---|---|---|---|
| 852223P | United States of America | – | |
| 85222306 | United States of America | P | |
| 85222306 | United States of America | P | |
| 2007054200 | International Bureau of the World Intellectual Property Organization (WIPO) | W | |
| 2007054200 | International Bureau of the World Intellectual Property Organization (WIPO) | W | |
| 852223P | – | – | – |
| PCTIB2007054200 | – | – | – |
| US20060852223P | – | – | – |
| WO2007IB54200 | – | – | – |
Members50
| Document | Office | Kind | |
|---|---|---|---|
| AU2007311476A1 | Australia | A1 | |
| CA2666452A1 | Canada | A1 | |
| CA2858458A1 | Canada | A1 | |
| CA3006093A1 | Canada | A1 | |
| WO2008047303A2 | World Intellectual Property Organization (WIPO) | A2 | |
| US2008117985A1 | United States of America | A1 | |
| US2008137742A1 | United States of America | A1 | |
| WO2008047303A3 | World Intellectual Property Organization (WIPO) | A3 | |
| TW200829034A | Taiwan Province of China | A | |
| TW200829035A | Taiwan Province of China | A | |
| MX2009003967A | Mexico | A | |
| KR20090079932A | Republic of Korea | A | |
| EP2087741A2 | European Patent Office (EPO) | A2 | |
| CN101548550A | China | A | |
| HK1133761A | Hong Kong, China | A | |
| HK1133761A1 | Hong Kong, China | A1 | |
| EP2087741A4 | European Patent Office (EPO) | A4 | |
| KR20110123291A | Republic of Korea | A | |
| KR101120648B1 | Republic of Korea | B1 | |
| US8165216B2 | United States of America | B2 | |
| AU2007311476B2 | Australia | B2 | |
| AU2012216719A1 | Australia | A1 | |
| AU2007311476C1 | Australia | C1 | |
| US8396121B2 | United States of America | B2 | |
| TWI396451B | Taiwan Province of China | B | |
| EP2642756A2 | European Patent Office (EPO) | A2 | |
| EP2642756A3 | European Patent Office (EPO) | A3 | |
| BRPI0718206A2 | Brazil | A2 | |
| EP2087741B1 | European Patent Office (EPO) | B1 | |
| AU2012216719B2 | Australia | B2 | |
| CN101548550B | China | B | |
| AU2014210664A1 | Australia | A1 | |
| ES2492923T3This record | Spain | T3 | |
| CN104093031A | China | A | |
| CA2666452C | Canada | C | |
| TWI488507B | Taiwan Province of China | B | |
| MX337935B | Mexico | B | |
| AU2016201810B2 | Australia | B2 | |
| CN104093031B | China | B | |
| EP2642756B1 | European Patent Office (EPO) | B1 | |
| EP3379834A2 | European Patent Office (EPO) | A2 | |
| EP3379834A3 | European Patent Office (EPO) | A3 | |
| ZA200903322B | South Africa | B | |
| BRPI0718206A8 | Brazil | A8 | |
| ES2702704T3 | Spain | T3 | |
| CA2858458C | Canada | C | |
| PL2642756T3 | Poland | T3 | |
| BRPI0718206B1 | Brazil | B1 | |
| CA3006093C | Canada | C | |
| EP3379834B1 | European Patent Office (EPO) | B1 |
Numbers
- Publication
- 2492923
- Publication, DOCDB
- 2492923
- Publication, EPODOC
- ES2492923T
- Application
- 7826751
- Application, DOCDB
- 07826751
- Application, EPODOC
- ES20070826751T
Titles2
- Spanish
- Sistema y procedimiento para implementar una administración eficiente de memoria intermedia decodificada en codificación de video de vistas múltiples
- English
- System and procedure for implementing efficient management of decoded buffer memory in multi-view video coding
Classification
- CPC, 9
- H04N19/573
- H04N19/105
- H04N19/70
- H04N19/597
- H04N19/46
- H04N19/423
- H04N19/172
- H04N19/103
- H04N13/00
- IPC, 9
- H04N13 00
- H04N19 597
- H04N19 573
- H04N19 70
- H04N19 105
- H04N19 172
- H04N19 423
- H04N19 103
- H04N19 46