Supplement enhancement information including confidence level and mixed content information

By using SEI messages with confidence levels and flags, the patent addresses the challenge of accurately determining video source type and reliability, improving decoding systems' handling of mixed content.

JP2025160187APending Publication Date: 2025-10-22MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025108710
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2013-04-09
Filing Date
2025-06-27
Publication Date
2025-10-22

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies face challenges in accurately determining the source type and reliability of video content, particularly when dealing with mixed progressive and interlaced content, due to limited computational resources and access to uncompressed pictures.

Method used

Incorporating supplemental enhancement information (SEI) messages that include confidence levels and flags to indicate the reliability of picture source data, allowing decoders to make informed decisions on processing encoded bitstreams.

Benefits of technology

Enhances the flexibility and accuracy of video decoding systems by providing decoders with the confidence levels and mixed content indicators, enabling better handling of mixed progressive and interlaced content.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025160187000001_ABST
    Figure 2025160187000001_ABST
Patent Text Reader

Abstract

To provide an encoder and a decoder, including confidence level information of the encoder in supplement enhancement information.SOLUTION: A decoder decodes received bit streams to acquire a supplemental enhancement information (SEI) message. The SEI message includes picture source data, and expresses a confidence level of relative confidence of an encoder in the accuracy of this picture source data. The decoder uses confidence level indication to determine whether the decoder should separately identify a picture as progressive or interlaced picture and / or whether the decoder should identify a duplicate picture, or the decoder receives picture source scanning information in the SEI message as valid as it is.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This application relates to video encoding and decoding, and in particular to tools and techniques for using and providing supplemental enhancement information in a bitstream. [Background technology]

[0002] Engineers use compression (also called source coding) to reduce the bit rate of digital video. Compression reduces the cost of storing and transmitting video information by converting it into a lower bit rate format. Decompression (also called decoding) reconstructs a version of the original information from the compressed form. A "codec" is an encoder / decoder system.

[0003] Over the past two decades, various video codec standards have been adopted, including the H.261, H.262 (MPEG-2 or ISO / IEC 13818-2), H.263, and H.264 (AVC or ISO / IEC 14496-10) standards, as well as the MPEG-1 (ISO / IEC 11172-2), MPEG-4 Visual (ISO / IEC 14496-2), and SMPTE 421M (VC-1) standards. More recently, the HEVC (H.265) standard is under development. Video codec standards typically define options for the syntax of the coded video bitstream, detailed parameters in the bitstream, when specific features are used in encoding and decoding, and often provide details about the decoding operations that a decoder must perform to achieve the correct results. Summary of the Invention

[0004] Among other things, the detailed description provides innovations for bitstreams with supplemental enhancement information (SEI). In particular embodiments, the SEI message includes picture source data (e.g., data indicating whether the associated uncompressed picture is a progressive scan picture or an interlaced scan picture and / or data indicating whether the associated picture is a duplicate picture), and the SEI message may also indicate a confidence level of the encoder's relative reliability in the correctness of the format of this picture source data. A decoder can use the confidence level indication to determine whether the decoder should independently identify a picture as progressive or interlaced and / or whether to identify an indicated duplicate picture.

[0005] In certain embodiments, the SEI message also includes an indicator to indicate whether the associated picture contains mixed data (e.g., a mix of interlaced and progressive data). Such innovations can help improve the ability of video decoding systems to flexibly decide how to process encoded bitstreams or bitstream portions.

[0006] The foregoing and other objects, features, and advantages of the present invention will become more apparent from the following detailed description which proceeds with reference to the accompanying drawings. [Brief explanation of the drawings]

[0007] [Figure 1] FIG. 1 is a diagram of an exemplary computing system in which some described embodiments may be implemented. [Figure 2a] FIG. 1 illustrates an exemplary network environment in which some described embodiments may be implemented. [Figure 2b] FIG. 1 illustrates an exemplary network environment in which some described embodiments may be implemented. [Figure 3]FIG. 1 is a diagram of an exemplary encoder system in which some described embodiments can be cooperatively implemented. [Figure 4] FIG. 1 is a diagram of an exemplary decoder system in which some described embodiments can be cooperatively implemented. [Figure 5] 1 is a flowchart of a first exemplary method for using supplemental enhancement information, in accordance with an embodiment of the disclosed technology. [Figure 6] 1 is a flowchart of a first exemplary method for using supplemental enhancement information, in accordance with an embodiment of the disclosed technology. DETAILED DESCRIPTION OF THE INVENTION

[0008] The detailed description provides innovations for encoding and decoding bitstreams with supplemental enhancement information (SEI). In particular, the detailed description describes embodiments in which an SEI message for a picture includes a confidence level indicator indicating confidence in the accuracy of a syntax element or flag in the SEI message that indicates whether the picture is a progressive scan picture or an interlaced scan picture. In some embodiments, one or more syntax elements can be combined to indicate whether one or more associated pictures are progressive scan, interlaced scan, or of an unknown source. In certain embodiments, the SEI message further includes flags to indicate whether the associated picture contains mixed data and / or whether the associated picture is a duplicate picture.

[0009] Some of the innovations described herein are presented with reference to syntax elements and operations specific to the HEVC standard, such as certain draft versions of the HEVC standard, namely, HEVC standard draft version JCTVC-I1003 ("High efficiency video coding (HEVC) text specification draft 8", JCTVC-I1003_d8, 10th meeting held in Stockholm, July 2012) and HEVC standard draft version JCTVC-L1003 ("High efficiency video coding (HEVC) text specification draft 10", JCTVC-L1003_v34, 12th meeting held in Geneva, Switzerland, January 14-23, 2013). The innovations described herein may also be implemented for other standards or formats.

[0010] More generally, various alternatives to the examples described herein are possible. For example, some of the methods described herein can be modified by changing the order of the described method actions, separating certain method actions, repeating certain method actions, or omitting certain method actions. Various aspects of the disclosed technology can be used in combination or separately. Various embodiments employ one or more of the described innovations. Some of the innovations described herein address one or more of the problems noted in the background. Generally, a given technology / tool ​​does not solve all such problems.

[0011] I. Exemplary Computing System Figure 1 illustrates a generalized example of a suitable computing system 100 in which some of the described innovations may be implemented. The computing system 100 is not intended to suggest any limitation as to scope of use or functionality, as the innovations may be implemented in a variety of general-purpose or special-purpose computing systems.

[0012] Referring to FIG. 1, a computing system (100) includes one or more processing units (110, 115) and memory (120, 125). This most basic configuration (130) is enclosed within the dashed line in FIG. 1. The processing units (110, 115) execute computer-executable instructions. The processing units may be general-purpose central processing units (CPUs), processors in an application-specific integrated circuit (ASIC), or any other type of processor. In a multiprocessing system, multiple processing units execute computer-executable instructions to increase processing power. For example, FIG. 1 also illustrates a graphics processing unit or co-processor (115) in addition to the central processing unit (110). The tangible memory (120, 125) may be volatile memory (e.g., registers, cache, RAM) accessible by one or more processing units, non-volatile memory (e.g., ROM, EEPROM, flash memory, etc.), or some combination of the two. The memory (120, 125) stores, in the form of computer-executable instructions suitable for execution by one or more processing units, software (180) that implements one or more innovations for encoding or decoding pictures with SEI messages that have data indicating picture source type, reliability level, and whether the associated picture contains a mix of data types (see Section V).

[0013] A computing system may have additional features. For example, the computing system (100) may include storage (140), one or more input devices (150), one or more output devices (160), and one or more communication connections (170). An interconnection mechanism (not shown), such as a bus, controller, or network, interconnects the components of the computing system (100). Typically, operating system software (not shown) provides an operating environment for other software executing on the computing system (100) and coordinates the operation of the components of the computing system (100).

[0014] The tangible storage (140) may be removable or non-removable and may include a magnetic disk, magnetic tape or cassette, CD-ROM, DVD, or any other medium that can be used to non-temporarily store information and that can be accessed within the computing system (100). The storage (140) stores instructions for software (180) that implement one or more innovations for encoding or decoding pictures with an SEI message that includes data indicating a picture source type, a reliability level, and whether the associated picture contains a mix of data types (see Section V).

[0015] The one or more input devices (150) can be a touch input device such as a keyboard, mouse, pen, or trackball, a voice input device, a scanning device, or another device that provides input to the computing system (100). For video encoding, the one or more input devices (150) can be a camera, a video card, a TV tuner card, or similar device that receives video input in analog or digital form, or a CD-ROM or CD-RW that reads video samples into the computing system (100). The one or more output devices (160) can be a display, a printer, speakers, a CD writer, or another device that provides output from the computing system (100).

[0016] One or more communications connections (170) enable communication to another computing entity over a communications medium. The communications medium conveys information such as computer-executable instructions, audio input, video input, audio output, video output, or other data via a modulated data signal. A modulated data signal is a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. For example, but not limited to, the communications medium may use an electrical, optical, RF, infrared, or other carrier.

[0017] The innovation can be described in the general context of computer-readable media. A computer-readable medium is any available tangible medium that can be accessed within a computing environment. For example, tangible computer-readable media include, but are not limited to, memory (120, 125), storage (140), and combinations thereof. However, tangible computer-readable media do not include transitory, propagating signals.

[0018] The innovations may be described in the general context of computer-executable instructions. Computer-executable instructions are included, for example, in program modules and executed in a computing system on a target real or virtual processor. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The functionality of the program modules may be combined or divided among program modules as desired in various embodiments. The computer-executable instructions of the program modules may be executed in a local or distributed computing system.

[0019] The terms "system" and "device" are used interchangeably herein. Unless the context clearly indicates otherwise, these terms do not imply any limitation regarding the type of computing system or computing device. In general, a computing system or computing device may be local or distributed and may include any combination of dedicated and / or general-purpose hardware and software that implements the functionality described herein.

[0020] The disclosed methods may also be implemented using special-purpose computing hardware configured to perform any of the disclosed methods. For example, the disclosed methods may be implemented by an integrated circuit (e.g., an application-specific integrated circuit ("ASIC"), such as an ASIC digital signal processor ("DSP"), graphics processing unit ("GPU"), or programmable logic device ("PLD") such as a field programmable gate array ("FPGA")) specially designed or configured to perform any of the disclosed methods.

[0021] For purposes of presentation, the detailed description uses terms like "determine" and "use" to describe computer operations in a computing system. These terms are high-level abstract representations of operations performed by a computer and should not be confused with actions performed by a human. The actual computer operations corresponding to these terms will vary depending on the implementation.

[0022] II. Exemplary Network Environment 2a and 2b show exemplary network environments (201, 202) including a video encoder (220) and a video decoder (270). The encoder (220) and the decoder (270) are connected via a network (250) using an appropriate communication protocol. The network (250) may include the Internet or another computer network.

[0023] In the network environment (201) shown in FIG. 2a, each real-time communication ("RTC") tool (210) includes both an encoder (220) and a decoder (270) for two-way communication. A given encoder (220) can generate output conforming to the SMPTE 421M standard, the ISO-IEC 14496-10 standard (also known as H.264 or AVC), the HEVC standard, another standard, or a proprietary format, and the corresponding decoder (270) can receive the encoded data from the encoder (220). The two-way communication can be part of a video conference, a video call, or other two-party communication scenario. While the network environment (201) of FIG. 2a includes two real-time communication tools (210), the network environment (201) may include three or more real-time communication tools (210) participating in multi-party communication.

[0024] The real-time communication tool (210) manages the encoding by the encoder (220). Figure 3 shows an exemplary encoder system (300) that may be included in the real-time communication tool (210). Alternatively, the real-time communication tool (210) may use a different encoder system. The real-time communication tool (210) also manages the decoding by the decoder (270). Figure 4 shows an exemplary decoder system (400) that may be included in the real-time communication tool (210). Alternatively, the real-time communication tool (210) may use a different decoder system.

[0025] In the network environment (202) shown in FIG. 2b, the encoding tool (212) includes an encoder (220) that encodes video for transmission to multiple playback tools (214), each of which includes a decoder (270). One-way communication may be provided for a video surveillance system, a web camera monitoring system, a remote desktop conference presentation, or other scenarios in which video is encoded and transmitted from one location to one or more other locations. While the network environment (202) of FIG. 2b includes two playback tools (214), the network environment (202) may include more or fewer playback tools (214). Generally, the playback tools (214) communicate with the encoding tool (212) to determine the video streams they receive. The playback tools (214) receive the streams, buffer the received encoded data for an appropriate period, and begin decoding and playback.

[0026] Figure 3 shows an exemplary encoder system (300) that may be included in the encoding tool (212). Alternatively, the encoding tool (212) may use a different encoder system. The encoding tool (212) may also include server-side controller logic for managing connections with one or more playback tools (214). Figure 4 shows an exemplary decoder system (400) that may be included in the playback tool (214). Alternatively, the playback tool (214) may use a different decoder system. The playback tool (214) may also include client-side controller logic for managing connections with the encoding tool (212).

[0027] III. Exemplary Encoder System Figure 3 is a block diagram of an exemplary encoder system (300) capable of cooperating with some described embodiments to implement the present invention. The encoder system (300) may be a general-purpose encoder capable of operating in one of several encoding modes, such as a low-latency encoding mode for real-time communication, a transcoding mode, and a normal encoding mode for media playback from a file or stream, or may be a specialized encoder adapted for one of these encoding modes. The encoder system (300) may be implemented as an operating system module, as part of an application library, and / or as a standalone application. Generally, the encoder system (300) receives a sequence of source video frames (311) from a video source (310) and generates encoded data for output to a channel (390). The encoded data output to the channel may include a supplemental enhancement information ("SEI") message containing syntax elements and / or flags described in Section V.

[0028] The video source (310) can be a camera, a tuner card, a storage medium, or other digital video source. The video source (310) generates a series of video frames at a frame rate, such as 30 frames per second. As used herein, the term "frame" generally refers to the coded or reconstructed image data of the source. In progressive video, a frame is a progressive video frame. In interlaced video, in an exemplary embodiment, the interlaced video frame is de-interlaced before encoding. Alternatively, in interlaced video, two complementary interlaced video fields may be coded as an interlaced video frame or as separate fields. Whether referring to a progressive video frame, the term "frame" can refer to a single unpaired video field, a complementary pair of video fields, a video object plane representing a video object at a given time, or a region of interest in a larger image. A video object plane or region may be part of a larger image that contains multiple objects or regions of the scene.

[0029] An incoming source frame (311) is stored in a source frame temporary memory storage area (320), which includes multiple frame buffer storage areas (321, 322, ..., 32n). Each frame buffer (321, 322, etc.) holds one source frame within the source frame storage area (320). After one or more of the source frames (311) are stored in a frame buffer (321, 322, etc.), a frame selector (330) periodically selects individual source frames from the source frame storage area (320). The order in which frames are selected by the frame selector (330) for input to the encoder (340) may differ from the order in which frames are generated by the video source (310). For example, some frames may be temporarily earlier to facilitate backward prediction. Prior to the encoder (340), the encoder system (300) may include a preprocessor (not shown) that performs preprocessing (e.g., filtering) on ​​the selected frames (331) before encoding.

[0030] The encoder (340) encodes a selected frame (331) to generate a coded frame (341) and generates a memory management control operation (MMCO) signal (342) or reference picture set (RPS) information. When performing the encoding process, if the current frame is not the first frame being coded, the encoder (340) can use one or more previously coded / decoded frames (369) stored in the decoded frame temporary memory storage area (360). Such stored decoded frames (369) are used as reference frames for inter-frame prediction of the content of the current source frame (331). Typically, the encoder (340) includes multiple coding modules that perform coding tasks such as motion estimation and compensation, frequency transformation, quantization, and entropy coding. The exact operations performed by the encoder (340) can vary depending on the compression format. The format of the output encoded data may be Windows® Media Video format, VC-1 format, MPEG-x format (e.g., MPEG-1, MPEG-2, or MPEG-4), H.26x format (e.g., H.261, H.262, H.263, H.264), HEVC format, or other formats.

[0031] For example, in the encoder (340), an inter-coded predicted frame is expressed in terms of prediction from a reference frame. A motion estimator estimates the motion of a macroblock, block, or other set of samples of a source frame (341) with respect to one or more reference frames (369). When multiple reference frames are used, the multiple reference frames may be from different temporal directions or from the same temporal direction. The motion estimator outputs motion information, such as motion vector information, which is entropy coded. A motion compensation unit applies motion vectors to the reference frames to determine motion-compensated prediction values. The encoder determines the difference, if any, between the motion-compensated prediction value of a block and the corresponding original value. These prediction residual values ​​are further coded using frequency transform, quantization, and entropy coding. Similarly, for intra prediction, the encoder (340) can determine an intra prediction value for a block, determine a prediction residual value, and code the prediction residual value. Specifically, the entropy coding unit of the encoder (340) compresses the quantized transform coefficient values ​​as well as certain side information (e.g., motion vector information, quantization parameter values, mode decision, parameter selection). Common entropy coding techniques include exponential-Golomb coding, arithmetic coding, differential coding, Huffman coding, run-length coding, variable-length-to-variable-length (V2V) coding, variable-length-to-fixed-length (V2F) coding, LZ coding, dictionary coding, probability interval partitioning entropy coding (PIPE) coding, and combinations thereof. The entropy coding unit can use various coding techniques for different types of information and can select from multiple code tables within a particular coding technique.

[0032] The coded frame (341) and the MMCO / RPS information (342) are processed by a decoding process emulator (350). The decoding process emulator (350) implements some of the functionality of a decoder, such as the decoding task of reconstructing a reference frame used by the encoder (340) in motion estimation and motion compensation. The decoding process emulator (350) uses the MMCO / RPS information (342) to determine whether a given coded frame (341) needs to be reconstructed and stored for use as a reference frame in inter-frame prediction of subsequent frames to be coded. If the MMCO / RPS information (342) indicates that the coded frame (341) needs to be stored, the decoding process emulator (350) simulates the decoding process that would be performed by a decoder receiving the coded frame (341) and generating a corresponding decoded frame (351). In doing so, when the encoder (340) uses one or more decoded frames (369) stored in the decoded frame storage area (360), the decoding process emulator (350) uses one or more decoded frames (369) from the storage area (360) as part of the decoding process.

[0033] The decoded frame temporary memory storage area (360) includes multiple frame buffer storage areas (361, 362, ..., 36n). The decoding process emulator (350) manages the contents of the storage area (360) using the MMCO / RPS information (342) to identify any frame buffers (361, 362, etc.) that contain frames no longer needed by the encoder (340) for use as reference frames. After simulating the decoding process, the decoding process emulator (350) stores the newly decoded frame (351) in the frame buffer (361, 362, etc.) thus identified.

[0034] The coded frames (341) and MMCO / RPS information (342) are also buffered in a temporary coded data area (370). The coded data collected in the coded data area (370) may include media metadata associated with the coded video data (e.g., as one or more parameters in one or more Supplemental Enhancement Information ("SEI") messages or Video Usability Information ("VUI") messages). SEI messages may include syntax elements and / or flags described in Section V.

[0035] The collected data (371) from the temporary coded data area (370) is processed by a channel encoder (380). The channel encoder (380) can packetize the collected data for transmission as a media stream (e.g., according to a media container format such as ISO / IEC 14496-12). In such cases, the channel encoder (380) can add syntax elements as part of the syntax of the media transmission stream. Alternatively, the channel encoder (380) can organize the collected data for storage as a file (e.g., according to a media container format such as ISO / IEC 14496-12). In such cases, the channel encoder (380) can add syntax elements as part of the syntax of the media storage file. Alternatively, more generally, the channel encoder (380) can implement one or more media system multiplexing or transmission protocols. In such cases, the channel encoder (380) can add syntax elements as part of one or more protocol syntaxes. The channel encoder (380) provides output to a channel (390), which may represent a storage, communication connection, or another channel for output.

[0036] IV. Exemplary Decoder System Figure 4 is a block diagram of an exemplary decoder system (400) capable of cooperating with some described embodiments to implement the decoder system (400). The decoder system (400) may be a general-purpose decoding tool capable of operating in one of several decoding modes, such as a low-latency decoding mode for real-time communication and a normal decoding mode for media playback from a file or stream, or it may be a dedicated decoding tool adapted for one such encoding mode. The decoder system (400) may be implemented as an operating system module, as part of an application library, or as a standalone application. Generally, the decoder system (400) receives encoded data from a channel (410) and generates reconstructed frames as output to a destination (490). The encoded data may include supplemental enhancement information ("SEI") messages containing syntax elements and / or flags described in Section V.

[0037] The decoder system (400) includes a channel (410), which may represent a storage, a communication connection, or another channel for encoded data as input. The channel (410) generates channel-encoded encoded data. The channel decoder (420) can process the encoded data. For example, the channel decoder (420) can depacketize collected data for transmission as a media stream (e.g., according to a media container format such as ISO / IEC 14496-12). In such cases, the channel decoder (420) can parse syntax elements added as part of the syntax of the media transmission stream. Alternatively, the channel decoder (420) can separate collected encoded video data for storage as a file (e.g., according to a media container format such as ISO / IEC 14496-12). In such cases, the channel decoder (420) can parse syntax elements added as part of the syntax of a media storage file. Alternatively, more generally, the channel decoder (420) may implement one or more media system demultiplexing or transmission protocols, in which case the channel decoder (420) may parse syntax elements added as part of the syntax of one or more protocols.

[0038] The coded data (421) output from the channel decoder (420) is stored in a temporary coded data area (430) until a sufficient amount of data is received. The coded data (421) includes coded frames (431) and MMCO / RPS information (432). The coded data (421) in the coded data area (430) may include media metadata associated with the coded video data (e.g., as one or more parameters in one or more SEI or VUI messages). The SEI messages may include syntax elements and / or flags described in Section V. Generally, the coded data area (430) temporarily stores the coded data (421) until such coded data (421) is to be used by the decoder (450). At that point, the coded data of the coded frames (431) and MMCO / RPS information (432) is transmitted from the coded data area (430) to the decoder (450). As decoding progresses, new coded data is added to the coded data area (430) and the oldest coded data remaining in the coded data area (430) is transmitted to the decoder (450).

[0039] The decoder (450) periodically decodes coded frames (431) to generate corresponding decoded frames (451). Optionally, when performing the decoding process, the decoder (450) can use one or more previously decoded frames (469) as reference frames for inter-frame prediction. The decoder (450) retrieves such previously decoded frames (469) from a decoded frame temporary memory storage area (460). Generally, the decoder (450) includes multiple decoding modules that perform decoding tasks such as entropy decoding, inverse quantization, inverse frequency transform, and motion compensation. The exact operations performed by the decoder (450) can vary depending on the compression format.

[0040] For example, the decoder (450) receives encoded data for a compressed frame or series of frames and generates output including a decoded frame (451). In the decoder (450), a buffer accepts the encoded data for the compressed frame and makes the accepted encoded data available to an entropy decoder. The entropy decoder entropy decodes the entropy-encoded quantized data as well as the entropy-encoded side information, typically by applying the inverse of the entropy encoding performed in the encoder. Section V describes examples of encoded data that may be decoded by the decoder 450, including an SEI message containing the syntax elements and / or flags described in Section V. The motion compensation module applies motion information to one or more reference frames to form motion-compensated predictions of sub-blocks, blocks, and / or macroblocks (generally, blocks) of the frame being reconstructed. An intra-prediction module can spatially predict sample values ​​of a current block from neighboring, previously reconstructed sample values. The decoder (450) also reconstructs prediction residuals. The inverse quantization module inverse quantizes the entropy-decoded data. An inverse frequency transformer converts the quantized frequency domain data into spatial domain information. For predicted frames, the decoder (450) combines the reconstructed prediction residual with motion compensated prediction to form a reconstructed frame. The decoder (450) can also combine the prediction residual with spatial prediction from intra prediction. The motion compensation loop in the video decoder (450) includes an adaptive deblocking filter, which smooths discontinuities across block boundaries row and / or column in the decoded frame (451).

[0041] The decoded frame temporary memory storage area (460) includes multiple frame buffer storage areas (461, 462, ..., 46n). The decoded frame storage area (460) is an example of a DPB. The decoder (450) uses the MMCO / RPS information (432) to identify a frame buffer (461, 462, etc.) in which the decoded frame (451) can be stored. The decoder (450) stores the decoded frame (451) in that frame buffer.

[0042] The output sequencer (480) uses the MMCO / RPS information (432) to identify when the next frame to be generated in output order is available in the decoded frame storage area (460). When the next frame (481) to be generated in output order is available in the decoded frame storage area (460), it is read by the output sequencer (480) and output to an output destination (490) (e.g., a display). In general, the order in which frames are output by the output sequencer (480) from the decoded frame storage area (460) may differ from the order in which the frames are decoded by the decoder (450).

[0043] V. Exemplary Embodiments for Indicating Video Frame Type Indication Information and Confidence Level of Mixing Characteristics This section describes several variations for encoding and / or decoding bitstreams with information (e.g., syntax elements, flags, or their extensions) to indicate the encoder's reliability level of the picture source data. In particular, this section provides examples in which an SEI message includes an indication of the degree of reliability of the picture source data in the message (e.g., the level of confidence in the accuracy of the progressive_source_flag, mixed_characteristics_flag, and / or duplicate_flag (or any equivalent flag or syntax element) in the SEI message). Such additional information is useful because some encoders may not be able to reliably determine the exact value of the picture source data. Adding an indicator that explicitly states the degree of reliability in the picture source data can help a decoder determine how best to use and present the received picture data. Furthermore, encoders may also encounter video content with mixed progressive / interlaced characteristics. In certain embodiments, an additional syntax element or flag may be included to indicate that the content has mixed characteristics, rather than indicating that the content has fully interlaced or fully progressive source characteristics. Any of the encoders or decoders described above may be adapted to use the disclosed encoding and decoding techniques.

[0044] According to Draft 8 of the HEVC standard ("High efficiency video coding (HEVC) text specification draft 8", JCTVC-I1003_d8, 10th Meeting held in Stockholm, July 2012), the "Field Indication" SEI message contains two syntax elements used to describe the characteristics of the picture source: progressive_source_flag and duplicate_flag. A progressive_source_flag value of "1" indicates that the scan type of the associated picture should be interpreted as progressive, and a progressive_source_flag value of "0" indicates that the scan type of the associated picture should be interpreted as interlaced. If the Field Indication SEI message is not present, the value of progressive_source_flag is inferred to be equal to "1". In other embodiments, these values ​​are reversed.

[0045] Furthermore, a duplicate_flag value of "1" indicates that the current picture is a duplicate of the previous picture in output order, and a duplicate_flag value of "0" indicates that the current picture is not a duplicate picture. In other embodiments, these values ​​are reversed.

[0046] However, in some application scenarios, an HEVC encoding system may not have enough information to determine the correct values ​​for the progressive_source_flag and / or duplicate_flag syntax elements. For example, an encoding system may only receive fields or frames as input video data and may have limitations in computational power, memory capacity, or delay characteristics that prevent the encoder from performing a deep analysis of the source content characteristics. Furthermore, some encoding systems may have only limited access to information from the uncompressed picture. Therefore, it may be difficult for an encoding system to determine the true characteristics of the source. It is also possible that the source content may exhibit mixed characteristics. For example, the source content may be a mixture of interlaced and progressive content. Field-based text or graphics overlays applied to progressive-scan video are an example of content with mixed characteristics.

[0047] To address these issues, embodiments of the disclosed technology include encoding that can indicate the degree of confidence the encoder has in indicating whether content is interlaced or progressive. A decoder or display subsystem can use the indicated degree of confidence to control subsequent processing, such as deinterlacing, or whether it should detect source video characteristics itself rather than relying on the characteristics indicated by the encoder. Additionally, in some implementations, the encoder can indicate whether the encoded content has mixed characteristics. This indication of mixed progressive-interlaced content can be used by a decoder to process the encoded bitstream appropriately.

[0048] In certain embodiments, an SEI message (e.g., an SEI message accompanying a picture) includes a flag or syntax element to indicate the reliability level of the source indication (e.g., a value indicating the accuracy of the encoder's source indication of whether the content is interlaced or progressive data and / or the encoder's duplicate picture indication).

[0049] In the context of Draft 8 of the HEVC standard, for example, the field indication SEI message may include a syntax element to indicate a reliability level of the field indication information syntax elements that indicate source video characteristics, specifically the reliability level of the progressive_source_flag and / or the duplicate_flag. Furthermore, in certain embodiments, the field indication SEI message also includes a flag to indicate whether the coded content includes mixed characteristics (e.g., mixed progressive and interlaced content).

[0050] In one particular embodiment, the syntax of the field_indication SEI message is as follows: [Table 1]

[0051] In the example syntax shown above, note the "mixed_characteristics_flag" and "confidence_level" syntax elements.

[0052] In one exemplary embodiment, mixed_characteristics_flag equal to "1" indicates that the video content has mixed progressive and interlaced scan characteristics. Such mixed-characteristics video may be generated, for example, when field-based graphics overlay other progressive-scan video content. mixed_characteristics_flag equal to "0" indicates that the video content does not have mixed characteristics. In other embodiments, the value of mixed_characteristics_flag is reversed from the values ​​described above.

[0053] The confidence_level syntax element may be a 1-bit syntax element, a 2-bit syntax element, or a 3-bit or greater syntax element. In certain embodiments, the confidence_level syntax element is a 2-bit syntax element. In one particular example, for example, a confidence_level syntax element equal to "3" indicates a high degree of certainty that one or more of progressive_source_flag, source_scan_type, mixed_characteristics_flag, or duplicate_flag are correct and that a decoder may confidently rely on this information. A confidence_level syntax element equal to "2" indicates a reasonable degree of confidence that one or more of these syntax elements are correct and that, if sufficient capacity is not available in the decoder to perform further analysis of content characteristics, accepting this information as valid is recommended for subsequent processes (e.g., subsequent decoder processes). A confidence_level syntax element equal to "1" indicates that further analysis of content characteristics should be performed, if feasible. A confidence_level syntax element equal to "0" indicates that subsequent processes should not rely on the accuracy of these syntax elements.

[0054] It should be understood that these four exemplary levels are merely examples, and any other number of levels may be used. For example, in a given embodiment, a 2-bit confidence level syntax element may be used to flag three levels of confidence: a high confidence level where the decoder uses (or should use) source indication information; a medium confidence level where the decoder should accept this information as valid if it cannot accurately detect the source information during decoding; and a low or no confidence level where the decoder should perform its own detection of the source indication information.

[0055] Furthermore, in certain embodiments, multiple confidence_level syntax elements are used, for example, there may be separate confidence_level syntax elements for progressive_source_flag, mixed_characteristics_flag, or duplicate_flag.

[0056] As described above, embodiments of the disclosed technology include adding information to a supplemental enhancement information (SEI) message that indicates a confidence level for the accuracy of the data contained in the SEI message. For example, in certain embodiments, the disclosed technology includes an extension to the picture-level SEI message in the HEVC standard. Furthermore, some embodiments additionally or alternatively include a flag to describe the source characteristics of the video content (e.g., a flag to indicate that the video contains mixed characteristics). The confidence level syntax element and the source characteristics syntax element may be useful, for example, in scenarios where an encoder has limited information regarding the scan format of the video content's origin, limited analysis resources, and / or limited access to uncompressed pictures.

[0057] In some instances, a decoder system may have limited computational capabilities, limited access to uncompressed pictures, or some other limitation that makes it difficult or impossible for the decoder to analyze the decoded video or process the encoded video in a manner customized to respond to the indicated confidence level information. In such situations, the decoder may not be able to derive the content characteristics on its own. Thus, in certain embodiments, the decoder system accepts the field indication or picture timing information in the encoded bitstream as valid "as is." That is, in certain examples, the decoder does not use the confidence_level syntax element and follows the information in the SEI message regardless of the confidence level.

[0058] It should be understood that the mixed_characteristics_flag and confidence_level indication syntax elements may be implemented separately from one another in a given embodiment of the disclosed technology. When the confidence_level indication syntax element is used without the mixed_characteristics_flag, the semantics of the confidence_level indication will generally not have any mention of the mixed_characteristics_flag in its semantics.

[0059] More recently, according to Draft 10 of the HEVC standard ("High efficiency video coding (HEVC) text specification draft 10", JCTVC-L1003_v34, 12th Meeting held in Geneva, Switzerland, January 2013), source type information is conveyed using a different flag. Specifically, according to Draft 10, picture source information is included in the "Picture Timing" SEI message. Specifically, the Picture Timing SEI message is a picture-level SEI message that includes the source_scan_type and duplicate_flag syntax elements. Furthermore, in Draft 10, a source_scan_type value equal to "1" indicates that the source scan type of the associated picture should be interpreted as progressive, and a source_scan_type value equal to "0" indicates that the source scan type of the associated picture should be interpreted as interlaced. Furthermore, a source_scan_type value equal to "2" indicates that the source scan type of the associated picture is unknown or unspecified, whereas a source_scan_type equal to "3" is reserved for future use and shall be interpreted by the decoder as equal to the value "2".

[0060] In certain embodiments, the value of source_scan_type is determined from two syntax elements present in the profile, tier, and / or level information (e.g., a profile, tier, or level SEI message): general_progressive_source_flag and general_interlaced_source_flag. Furthermore, the source_scan_type syntax element is not necessarily present; in such cases, the general_progressive_source_flag and general_interlaced_source_flag can be used to determine the source type.

[0061] In one exemplary embodiment, general_progressive_source_flag and general_interlaced_source_flag are interpreted as follows: If general_progressive_source_flag is equal to '1' and general_interlaced_source_flag is equal to '0', the source scan type of the picture in the associated coded video segment shall be interpreted as progressive. In this case, in one particular embodiment, the value of source_scan_type shall be inferred to be equal to '1' when present and equal to '1' when absent. If general_progressive_source_flag is equal to '0' and general_interlaced_source_flag is equal to '1', the source scan type of the picture in the associated coded video segment shall be interpreted as interlaced. In this case, in one particular embodiment, the value of source_scan_type shall be inferred to be equal to '0' when present and equal to '0' when absent. If general_progressive_source_flag is equal to '0' and general_interlaced_source_flag is equal to '0', the source scan type of the picture in the associated coded video segment shall be interpreted as unknown or unspecified. In this case, in one particular embodiment, the value of source_scan_type shall be inferred to be equal to '2' when present and '2' when absent. If general_progressive_source_flag is equal to '1' and general_interlaced_source_flag is equal to '1', the source scan type of each picture in the associated coded video segment shall be indicated independently at the picture level using a syntax element (e.g., source_scan_type in a picture timing SEI message).It should be understood that these values ​​are for illustrative purposes only, and that different values ​​or combinations of values ​​may be used to signal progressive pictures, interlaced pictures, or pictures with unknown scan source.

[0062] The general_progressive_source_flag and general_interlaced_source_flag function similarly to the progressive_source_flag and confidence_level syntax elements described above. Specifically, similar to the collective operation of the progressive_source_flag and confidence_level syntax elements, the general_progressive_source_flag and general_interlaced_source_flag function in combination to identify whether one or more pictures are progressive or interlaced, and the confidence level associated with that decision. For example, when the general_progressive_source_flag and general_interlaced_source_flag are "1" and "0" (or "0" and "1"), these syntax elements indicate that the picture is progressive (or interlaced). Furthermore, this indication has a high level of confidence. However, if there is a low level of confidence in the picture type, then general_progressive_source_flag and general_interlaced_source_flag each have a value of "0", indicating that the source scan type is unknown. Thus, general_progressive_source_flag and general_interlaced_source_flag provide information of the same quality or characteristics as the confidence_level syntax element and progressive_source_flag introduced above, just using a slightly different format.

[0063] Draft 10 of the HEVC Standard also includes a duplicate_flag syntax element. In the particular embodiment described, a duplicate_flag value of "1" indicates that the current picture is marked as a duplicate of an earlier picture in output order, while a duplicate_flag value of "0" indicates that the current picture is not marked as a duplicate of an earlier picture in output order.

[0064] In the context of Draft 10 of the HEVC standard, the picture timing SEI message may include a source_scan_type syntax element to indicate whether the picture is progressive, interlaced, or unknown (as described above). The picture timing SEI message may also include a duplicate_flag.

[0065] In one particular embodiment, the syntax of the picture timing SEI message (also called the pic_timingSEI message) is as follows: [Table 2]

[0066] Additionally, although not currently present in the draft HEVC standard, in certain embodiments, the picture timing SEI message may also include a flag to indicate whether the coded content contains mixed characteristics (e.g., mixed progressive and interlaced content). For example, in one exemplary embodiment, mixed_characteristics_flag may be used to indicate whether a picture has mixed progressive and interlaced scan characteristics. For example, mixed_characteristics_flag equal to '1' indicates that the video content has mixed progressive and interlaced scan characteristics. Such mixed-characteristic video may be generated, for example, when field-based graphics overlay other progressive-scan video content. mixed_characteristics_flag equal to '0' indicates that the video content does not have mixed characteristics. In other embodiments, the value of mixed_characteristics_flag is reversed from the values ​​described above.

[0067] Additionally, separate confidence_level syntax elements may be created and used with the general_progressive_source_flag, general_interlaced_source_flag, and / or source_scan_type syntax elements. For example, the confidence_level syntax element may be used to indicate the reliability of the information indicated by the general_progressive_source_flag and general_interlaced_source_flag. The confidence_level syntax element may have any number of levels. For example, the syntax element may be a 1-bit syntax element, a 2-bit syntax element, or a 3-bit or greater syntax element. Additionally, in certain embodiments, multiple confidence_level syntax elements are used. For example, there may be separate confidence_level syntax elements for the source_scan_type element, the mixed_characteristics_flag, or the duplicate_flag.

[0068] 5 is a flowchart 500 of a generalized encoding method according to an embodiment of the disclosed technology. The illustrated method may be performed using computing hardware (e.g., a computer processor or integrated circuit). For example, the method may be performed by computing hardware such as that shown in FIG. 1. Furthermore, the method may also be implemented as computer-executable instructions stored on one or more computer-readable storage media (e.g., tangible computer-readable storage media).

[0069] At 510, one or more pictures of a bitstream or bitstream portion are coded. In an example embodiment, the one or more pictures are coded with one or more syntax elements used to indicate the source scan type of the one or more pictures. The one or more syntax elements may be included, for example, in an SEI message. Additionally, the syntax elements may be picture-specific or may identify characteristics of two or more pictures. In an example embodiment, the syntax elements indicate one or more of the following states of the coded picture: (a) a state indicating that one or more pictures are of interlaced scan type, (b) a state indicating that one or more pictures are of progressive scan type, and (c) a state indicating that one or more pictures are of an unknown source scan type.

[0070] At 512, the encoded bitstream or bitstream portion is output (eg, stored on a non-volatile computer readable medium and / or transmitted).

[0071] In certain embodiments, the one or more syntax elements include a first flag indicating whether the one or more pictures are of an interlaced scan type and a second flag indicating whether the one or more pictures are of a progressive scan type. In other embodiments, the one or more syntax elements include a single syntax element. Furthermore, in some embodiments, the one or more syntax elements include a one-bit or more first syntax element (source indicator) indicating whether the one or more pictures are of a progressive scan type and a one-bit or more second syntax element (reliability level) indicating a reliability level of the value of the first flag. In such embodiments, the reliability level syntax element can indicate two or more reliability levels. For example, the reliability level syntax element can include four reliability levels. The first is a reliability level signaling that the source indicator is accurate. The second is a reliability level signaling that the source indicator is likely to be accurate. The third level is a confidence level indicating that the source indicator is likely not accurate. The fourth level is a confidence level indicating that the source indicator is likely not accurate.

[0072] In some embodiments, the act of encoding may further include encoding a duplicate picture flag indicating whether one or more pictures are duplicate pictures and / or a mixed data flag indicating whether one or more pictures contain a mix of video types.

[0073] 6 is a flowchart 600 of a generalized decoding method according to an embodiment of the disclosed technology. The illustrated method may be performed using computing hardware (e.g., a computer processor or integrated circuit). For example, the method may be performed by computing hardware such as that shown in FIG. 1, or may be implemented as computer-executable instructions stored on one or more computer-readable storage media (e.g., tangible computer-readable storage media).

[0074] At 610, one or more pictures of a bitstream or bitstream portion are received (e.g., loaded, buffered, or prepared for further processing). In an exemplary embodiment, the bitstream or bitstream portion further includes one or more syntax elements used to indicate a picture source scan type of one or more pictures. The syntax elements may be picture-specific or may identify characteristics of two or more pictures. In an exemplary embodiment, the syntax elements indicate one or more of the following states of one or more decoded pictures: (a) a state indicating one or more pictures are of interlaced scan type, (b) a state indicating one or more pictures are of progressive scan type, and (c) a state indicating one or more pictures are of an unknown source scan type.

[0075] At 612, one or more pictures are decoded (e.g., using any of the decoding techniques disclosed above, the decoding described in the draft HEVC standard discussed herein, or any other known decoding technique).

[0076] At 614, the decoded one or more pictures are processed according to the source scan type identified by the one or more syntax elements. For example, in some embodiments, the one or more pictures may be displayed according to the identified scan type (e.g., interlaced scan video or progressive scan video may be displayed). In other embodiments, the decoded one or more pictures may be processed for later display. For example, a decoder device implementing the example method may deinterlace pictures signaled as interlaced and then transcode, store, and / or transmit the resulting video (e.g., transmit the video to another device or module that stores or displays the video). In situations where the one or more syntax elements indicate a low level of confidence or indicate that the scan type is unknown, processing may include analyzing the one or more pictures to determine the scan type.

[0077] In certain embodiments, the one or more syntax elements include a first flag indicating whether the one or more pictures are of an interlaced scan type and a second flag indicating whether the one or more pictures are of a progressive scan type. In other embodiments, the one or more syntax elements include a single syntax element. Furthermore, in some embodiments, the one or more syntax elements include a one or more bit first syntax element (source indicator) indicating whether the one or more pictures are of a progressive scan type and a one or more bit second syntax element (reliability level) indicating a reliability level of the value of the first flag. In such embodiments, the reliability level syntax element can indicate two or more reliability levels. For example, the reliability level syntax element can include four reliability levels: a first reliability level signaling that the source indicator is accurate; a second reliability level signaling that the source indicator is likely to be accurate; and a third reliability level signaling that the source indicator is likely to be inaccurate. The fourth is a confidence level that indicates the source indicator is not accurate.

[0078] In some embodiments, the act of decoding may further include decoding a duplicate picture flag indicating whether one or more pictures are duplicate pictures and / or a mixed data flag indicating whether one or more pictures contain a mix of video types.

[0079] In view of the many possible embodiments to which the principles of the disclosed invention may be applied, it should be recognized that the illustrated embodiments are merely preferred examples of the invention and should not be construed as limiting the scope of the invention. Rather, the scope of the invention is defined by the claims and their equivalents. We therefore claim as our invention all that come within the scope and spirit of the claims and their equivalents.

[0080] The following additional notes are made regarding the above embodiment. (Supplementary Note 1) A method performed by an encoder device, comprising: an encoding step for encoding a sequence of pictures in a bitstream or a bitstream portion, the step comprising: the encoding step includes encoding a syntax element in the bitstream or in the bitstream portion for identifying a source scan type of the sequence of pictures; the syntax elements collectively indicate one of the following available states: a state indicating that the picture in the sequence is of interlaced scan type; a state indicating that the picture in the sequence is of progressive scan type; a state indicating that the picture in the sequence is of unknown source scan type; and a state indicating that the source scan type is indicated independently for each picture in the sequence by a picture-level syntax element in a picture timing SEI message; the syntax element includes a first flag indicating whether one or more pictures are of an interlaced scan type, and a second flag, which is a syntax element different from the first flag and separate from the first flag, indicating whether the one or more pictures are of a progressive scan type; an encoding step; outputting the bitstream or the bitstream portion; A method comprising: (Supplementary Note 2) The method of Supplementary Note 1, wherein the encoding step further comprises encoding a duplicate picture flag indicating whether one or more of the pictures are duplicate pictures. (Appendix 3) The method of appendix 1, wherein the encoding step further includes encoding a mixed data flag indicating whether one or more of the pictures contain a mix of video types. (Appendix 4) A method performed by a decoder device, comprising: receiving a sequence of pictures in a bitstream or a bitstream portion, the bitstream or the bitstream portion further comprises a syntax element for identifying a source scan type of the sequence of pictures; the syntax elements collectively indicate one of the following available states: a state indicating that the picture in the sequence is of interlaced scan type; a state indicating that the picture in the sequence is of progressive scan type; a state indicating that the picture in the sequence is of unknown source scan type; and a state indicating that the source scan type is indicated independently for each picture in the sequence by a picture-level syntax element in a picture timing SEI message; the syntax element includes a first flag indicating whether one or more pictures are of an interlaced scan type, and a second flag, which is a syntax element different from the first flag and separate from the first flag, indicating whether the one or more pictures are of a progressive scan type; a receiving step; decoding the one or more pictures; processing the decoded one or more pictures according to a source scan type identified in one or more syntax elements; A method comprising: (Appendix 5) The method of appendix 4, wherein the bitstream or the bitstream portion further includes a duplicate picture flag indicating whether one or more of the pictures are duplicate pictures. (Appendix 6) The method of Appendix 4, wherein the bitstream or the bitstream portion further includes a mixed data flag indicating whether one or more of the pictures contains a mix of video types. (Supplementary Note 7) A tangible computer-readable medium having stored thereon computer-executable instructions that cause a computing device to perform a method, the method comprising: An encoding step of encoding pictures in a bitstream or a bitstream portion, comprising: the encoding step includes encoding a message in the bitstream or in the bitstream portion, the message including a source indicator and a separate reliability level indicator assigned by an encoder; the source indicator indicates whether the picture is coded as an interlaced scan picture or a progressive scan picture; the confidence level indicator indicates a level of certainty that the source indicator is accurate; an encoding step; outputting the bitstream or the bitstream portion; 1. A tangible computer-readable medium, comprising: (Appendix 8) The tangible computer-readable medium of Appendix 7, wherein the message further includes one or more of a duplicate picture flag indicating whether the picture is a duplicate picture and a mixed data flag indicating whether the picture contains a mix of video types. (Appendix 9) The tangible computer-readable medium of Appendix 7, wherein the confidence level indicator comprises two or more confidence levels. (Appendix 10) The tangible computer-readable medium of Appendix 9, wherein the confidence level indicator includes four confidence levels, a first of the four confidence levels signaling that the source indicator is accurate, a second of the four confidence levels signaling that the source indicator is likely to be accurate, a third of the four confidence levels indicating that the source indicator is likely to be inaccurate, and a fourth of the four confidence levels indicating that the source indicator is not accurate. (Supplementary Note 11) A tangible computer-readable medium having stored thereon computer-executable instructions that cause a computing device to perform a method, the method comprising: receiving a bitstream or a bitstream portion comprising coded data for a picture, the encoded data includes a message containing a source format indicator indicating whether the picture is an interlaced or progressive scan picture, and a separate confidence level indicator assigned by an encoder indicating a level of certainty that the source format indicator is accurate; a receiving step; decoding the picture; processing the picture according to a source format indicated by the message; 1. A tangible computer-readable medium, comprising: (Appendix 12) The tangible computer-readable medium of Appendix 11, wherein the message further includes one or more of a duplicate picture flag indicating whether the picture is a duplicate picture and a mixed data flag indicating whether the picture contains a mix of video types. (Appendix 13) The tangible computer-readable medium of Appendix 11, wherein the confidence level indicator comprises two or more confidence levels. (Appendix 14) The tangible computer-readable medium of Appendix 13, wherein the confidence level indicator includes four confidence levels, a first of the four confidence levels signaling that the source format indicator is accurate, a second of the four confidence levels signaling that the source format indicator is likely to be accurate, a third of the four confidence levels indicating that the source format indicator is likely to be inaccurate, and a fourth of the four confidence levels indicating that the source format indicator is inaccurate.

Claims

1. 1. A method performed by an encoder device, the method comprising:

1. Encoding a sequence of pictures in a bitstream or a bitstream portion, comprising: the encoding step includes encoding a syntax element in the bitstream or the bitstream portion for identifying a source scan type of the sequence of pictures; the syntax elements collectively indicate one of the following available states: a state indicating that the picture in the sequence is of interlaced scan type; a state indicating that the picture in the sequence is of progressive scan type; a state indicating that the picture in the sequence is of unknown source scan type; and a state indicating that the source scan type is indicated independently for each picture in the sequence by a picture-level syntax element in a picture timing SEI message; the syntax element includes a first flag indicating whether one or more pictures are of an interlaced scan type, and a second flag, which is a syntax element different from the first flag and separate from the first flag, indicating whether the one or more pictures are of a progressive scan type; Steps and outputting the bitstream or the bitstream portion. method.

2. The method of claim 1 , wherein the encoding step further comprises encoding a duplicate picture flag indicating whether one or more of the pictures is a duplicate picture.

3. The method of claim 1 , wherein the encoding step further comprises encoding a mixed data flag indicating whether one or more of the pictures contain a mix of video types.

4. 1. A method performed by a decoder device, the method comprising: receiving a sequence of pictures in a bitstream or a bitstream portion, the bitstream or the bitstream portion further comprises a syntax element for identifying a source scan type of the sequence of pictures; the syntax elements collectively indicate one of the following available states: a state indicating that the picture in the sequence is of interlaced scan type; a state indicating that the picture in the sequence is of progressive scan type; a state indicating that the picture in the sequence is of unknown source scan type; and a state indicating that the source scan type is indicated independently for each picture in the sequence by a picture-level syntax element in a picture timing SEI message; the syntax element includes a first flag indicating whether one or more pictures are of an interlaced scan type, and a second flag, which is a syntax element different from the first flag and separate from the first flag, indicating whether the one or more pictures are of a progressive scan type; Steps and decoding the one or more pictures; processing the decoded one or more pictures according to a source scan type identified in one or more syntax elements; method.

5. The method of claim 4 , wherein the bitstream or the bitstream portion further includes a duplicate picture flag indicating whether one or more of the pictures is a duplicate picture.

6. The method of claim 4 , wherein the bitstream or the bitstream portion further includes a mixed data flag indicating whether one or more of the pictures contains a mix of video types.

7. A tangible computer-readable medium storing computer-executable instructions that cause a computing device to perform a method, the method comprising: receiving a sequence of pictures in a bitstream or a bitstream portion, the bitstream or the bitstream portion further includes syntax elements for identifying a source scan type of the sequence of pictures, the syntax elements collectively indicating one of the following available states: a state indicating that the picture in the sequence is of interlaced scan type; a state indicating that the picture in the sequence is of progressive scan type; a state indicating that the picture in the sequence is of unknown source scan type; and a state indicating that the source scan type is indicated independently for each picture in the sequence by a picture-level syntax element in a picture timing SEI message; the syntax element includes a first flag indicating whether one or more pictures are of an interlaced scan type, and a second flag, which is a syntax element different from the first flag and separate from the first flag, indicating whether the one or more pictures are of a progressive scan type; Steps and decoding the one or more pictures; processing the one or more pictures being decoded according to a source scan type identified in one or more syntax elements; A tangible computer-readable medium.

8. 8. The tangible computer-readable medium of claim 7, wherein the bitstream or the bitstream portion further comprises a duplicate picture flag indicating whether one or more of the pictures is a duplicate picture.

9. 8. The tangible computer-readable medium of claim 7, wherein the bitstream or the bitstream portion further includes a mixed data flag indicating whether one or more of the pictures contains a mix of video types.