Frame Rate Conversion

The system adjusts playback speed of video content over specific intervals using sequences of original and duplicated frames to synchronize frame rates with display refresh rates, addressing viewing experience issues and eliminating the need for re-encoding.

JP7617079B2Active Publication Date: 2025-01-17NETFLIX INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2022506972
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-08-08
Filing Date
2020-08-06
Publication Date
2025-01-17
Estimated Expiration
2040-08-06

AI Technical Summary

Technical Problem

Current methods for synchronizing video frame rates with display refresh rates often result in image disturbances and noticeable processing artifacts, degrading the user's viewing experience, especially when frame rates are not completely divisible, leading to the need for re-encoding video content for different regions with varying display refresh rates.

Method used

A system that adjusts the playback speed of video content over specific intervals to synchronize the frame rate with the display refresh rate by using a sequence of original and duplicated frames, with varying playback speeds within specified limits to maintain smooth playback without re-encoding.

Benefits of technology

Ensures seamless video playback across different display refresh rates by adjusting playback speed within certain limits, reducing judder and other artifacts, and allowing video streaming providers to deliver smooth content without re-encoding their libraries for various markets.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007617079000001
    Figure 0007617079000001
  • Figure 0007617079000002
    Figure 0007617079000002
  • Figure 0007617079000003
    Figure 0007617079000003
Patent Text Reader

Abstract

The disclosed method includes accessing video content encoded at a particular frame rate and determining a refresh rate of an electronic display on which the video content will be presented. The method then includes identifying a time interval of the video content to which a frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display. The method also includes displaying the video content on the electronic display with an adjusted playback speed for a first portion of the interval. The interval is played back at the adjusted speed using original video frames and a plurality of duplicate frames. The presentation also adjusts the playback speed for a second portion of the interval. The interval is played back at the adjusted speed using a different portion of the original video frames and duplicate frames. Various other methods, systems, and computer-readable media are also disclosed.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] Related Applications This application claims priority to U.S. patent application Ser. No. 16 / 536,302, entitled "FRAME RATE CONVERSION," filed Aug. 8, 2019, the entire contents of which are incorporated herein by reference. [Background technology]

[0002] Digital video content, including movies, television, online streaming video, and other content, is typically encoded using a variety of encoding formats. Most commonly, video content is encoded using one of the MPEG standards, such as MPEG-4. The encoding specifies a frame rate for displaying the video. For example, movies are typically encoded at 24 frames per second. This video content is then sent to an electronic display for presentation to a user or group of users. The electronic display (e.g., a liquid crystal display (LCD), an organic light emitting diode (OLED) display, or some other type of display) typically displays the content at a particular refresh rate.

[0003] For example, many displays display content at 50 Hz, 60 Hz, 120 Hz, or even 240 Hz. Thus, electronic displays generate new images on the display 50, 60, 120, or 240 times per second. Video content sent to a display is encoded at a much lower frame rate (e.g., 24 frames per second), so the display may redraw the same frame multiple times per second. When redrawing these frames multiple times per second, the number of frames per second (e.g., 24) is often not perfectly divisible by the display's refresh rate, such as 50 Hz or 60 Hz. Therefore, additional video frames or portions of frames are duplicated during playback to match the frame rate of the video content to the refresh rate of the electronic display. However, current techniques for duplication and synchronization often result in noticeable artifacts that are accompanied by visual artifacts and degrade the user's viewing experience. Summary of the Invention

[0004] As described in more detail below, this disclosure describes systems and methods for aligning a frame rate of a video with a refresh rate of an electronic display. The method includes accessing video content encoded at a particular frame rate. The method also includes determining a refresh rate of an electronic display on which the video content is presented. The method further includes identifying a time interval of the video content in which a frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display. The method also includes presenting the identified time interval of the video content to the electronic display. The presenting includes adjusting a playback speed of a first portion of the identified interval of the video content such that the first portion of the identified interval is played using original video frames and a first sequence of duplicated frames, and adjusting a playback speed of a subsequent portion of the identified interval of the video content such that the second portion of the identified interval is played using the original video frames and a second sequence of different duplicated frames.

[0005] In some examples, the second sequence of different sequences of duplicated frames includes at least a minimum threshold number of duplicated frames. In some examples, adjusting the playback speed of a first portion of the identified interval of video content includes increasing the playback speed of the first portion of the identified interval of video content. In some examples, adjusting the playback speed of a second portion of the identified interval of video content includes decreasing the playback speed of the second portion of the identified interval of video content.

[0006] In some examples, the playback speed is adjusted within a specified maximum or slowest playback speed range. In some examples, adjusting the playback speed includes modifying a presentation timestamp associated with the video content. In some examples, the specified time interval is greater than 1 second. In some examples, the specified time interval is at least 3 seconds.

[0007] In some examples, the playback speed is adjusted based on the type of video frame being presented. In some examples, an interval of the video content that includes a primary duplicated frame is automatically played at a specified playback speed. In some examples, an interval of the video content that includes a secondary duplicated frame is automatically played at a specified playback speed. In some examples, a plurality of the duplicated frames are repeated at a specified interval.

[0008] A corresponding system includes at least one physical processor and a physical memory including computer-executable instructions that, when executed by the physical processor, cause the physical processor to access a portion of video content encoded at a particular frame rate. The physical processor then determines a refresh rate of an electronic display on which the video content is to be displayed. The physical processor further identifies a time interval of the video content to which a frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display. The physical processor also presents the identified time interval of video content to the electronic display. The presenting includes adjusting a playback speed of a first portion of the identified interval of video content such that the first portion of the identified interval is played using original video frames and a first sequence of duplicated frames, and adjusting a playback speed of a subsequent portion of the identified interval of video content such that the second portion of the identified interval is played using the original video frames and a second sequence of the duplicated frames.

[0009] In some examples, a playback speed for each portion of the identified interval of video content is stored in a look-up table. In some examples, the identified interval of video content is played on the electronic display according to playback information indicated in the look-up table. In some examples, the look-up table includes a delta value that is applied while the identified time interval of video content is being presented on the electronic display to adjust a presentation timestamp of each frame within the time interval of video content.

[0010] In some examples, the system further tests the presentation of the identified time interval of video content on the electronic display to verify certain quality metrics related to the playback of the video content. In some examples, the frame rate of the video content is 24 frames per second and the refresh rate of the electronic display is 50 Hz. In some examples, the frame rate of the video content is 24 frames per second and the refresh rate of the electronic display is 60 Hz.

[0011] In some examples, the methods are encoded as computer readable instructions on a computer readable medium. For example, the computer readable medium may have one or more computer executable instructions that, when executed by at least one processor of a computing device, cause the computing device to access a portion of video content encoded at a particular frame rate, determine a refresh rate of an electronic display on which the video content is displayed, identify a time interval of the video content in which a frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display, and present the identified time interval of video content on the electronic display, the presenting including adjusting a playback speed of a first portion of the identified interval of video content such that the first portion of the identified interval is played using a first sequence of original video frames and duplicated frames, and adjusting a playback speed of a second portion of a subsequent portion of the identified interval of video content such that the second portion of the identified interval is played using the original video frames and a second sequence of a different sequence of the duplicated frames.

[0012] Features from any of the embodiments described herein may be used in combination with one another in accordance with the general principles described herein. These and other embodiments, features, and advantages will be more fully understood from a reading of the following detailed description in conjunction with the accompanying drawings and claims.

[0013] The accompanying drawings illustrate several preferred embodiments and are a part of this specification and, together with the following description, demonstrate and explain various principles of the present disclosure. [Brief description of the drawings]

[0014] [Figure 1] FIG. 1 is a block diagram of a preferred content delivery ecosystem. [Diagram 2] FIG. 2 is a block diagram of a preferred distribution infrastructure within the content distribution ecosystem shown in FIG. [Diagram 3] FIG. 3 is a block diagram of a preferred content player within the content delivery ecosystem shown in FIG. [Figure 4] FIG. 4 illustrates a computing architecture in which embodiments described herein operate. [Diagram 5] FIG. 5 shows a flow diagram of a preferred method for synchronizing the frame rate of a video with the refresh rate of an electronic display. [Figure 6] FIG. 6 illustrates an embodiment of a time interval having two different portions of video content. [Figure 7] FIG. 7 illustrates an embodiment in which video frames of different frame rates are converted to different display rates. [Figure 8] FIG. 8 shows a chart with different frame rate conversions and different types of duplicated frames along with the frame rate conversion quality metric. [Figure 9] FIG. 9 shows an embodiment having an original video frame and a duplicate video frame. [Figure 10A]FIG. 10A illustrates an embodiment in which a frame rate conversion is applied from 24 frames per second to 60 frames per second. [Figure 10B] FIG. 10B illustrates an embodiment in which a frame rate conversion is applied from 24 frames per second to 50 frames per second. [Figure 10C] FIG. 10C illustrates an embodiment in which a frame rate conversion is applied from 24 frames per second to 50 frames per second over a 3 second window. [Figure 11A] FIG. 11A shows a chart with different time intervals, duplicate frame numbers, orders, and play speeds. [Figure 11B] FIG. 11B illustrates an embodiment in which multiple duplicate video frames are played at a particular play speed. [Figure 11C] FIG. 11C illustrates an embodiment in which the display timestamps are adjusted in conjunction with the frame rate conversion. [Figure 12] FIG. 12 illustrates an embodiment in which the synchronization of the audio and video is modified to produce a desired audio / video output. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0015] Throughout the drawings, the same reference characters and descriptions indicate similar, but not necessarily identical, elements. While the preferred embodiments described herein are susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and are described in detail herein. However, it is not intended that the preferred embodiments described herein be limited to the particular forms disclosed. Rather, the present disclosure is intended to cover all modifications, equivalents, and alternatives falling within the scope of the appended claims.

[0016] This disclosure is generally directed to matching the frame rate of a video to the refresh rate of an electronic display. As discussed above, conventional systems attempt to match the frame rate of a video to the refresh rate of a display by simply adding duplicate frames or portions of duplicate frames. For example, when converting from 24 frames per second (fps) to 60 Hz (commonly used in U.S. and Japanese displays), conventional systems duplicate all 24 frames once for a total of 48 frames. These conventional systems then create an additional 12 frames that are duplicated a second time for a total of 60 frames. These 60 frames are then displayed on the electronic display for 1 / 60th of a second each. Subsequent frames are similarly duplicated and displayed in this manner for the length of the movie.

[0017] When a film shot at 24 fps is converted to 50 Hz (common for displays in Europe and South America), the original 24 frames are duplicated to create 48 frames, and two frames are duplicated a second time for a total of 50 frames. These 50 frames are displayed on the display for 1 / 50th of a second each. In other implementations, the original 24 frames are duplicated once, while one frame is duplicated again and another frame is duplicated a second time. This typically leads to noticeable jitter and other display artifacts visible to the user. It is also important to note that in these traditional systems, each frame is played at the same rate. Regardless of how the duplicate frames are generated, the video content is played at a consistent and identical speed throughout the entire movie or television program.

[0018] Other conventional implementations attempt to generate frames without direct duplication. For example, a video interpolation system looks at a selected frame and its subsequent frames and analyzes the differences between them using a video prediction / interpolation (EMC) algorithm. Such a system then uses the initial position of a pixel in a first frame to calculate an intermediate frame that transitions the pixel to its final position in the subsequent frame. The intermediate frame thus represents the "average" pixel value of the selected frame and the subsequent frame. However, these calculations require a relatively large amount of computing power and tend to leave noticeable artifacts in the image that users can notice. As a result, users often turn off such video prediction systems on their televisions and monitors.

[0019] Still other providers of video content choose to simply re-encode their entire libraries for different markets. For example, videos A, B, and C offered for viewing (e.g., on a streaming platform) are encoded at 24 fps so that they can be easily converted to a 60 Hz display. However, these same videos A, B, and C offered for viewing in Europe are encoded at 25 fps so that they can be easily converted to 50 Hz, since 24 fps does not clearly convert to 50 Hz. In such cases, the frame conversion simply involves duplicating each original frame once for a total of 50 fps, which are displayed at a 1:1 ratio on a 50 Hz display. However, for video content providers with very large libraries, it is not practical to re-encode the entire library for different regions with different display refresh rates.

[0020] Thus, the embodiments described herein can provide video content to electronic displays at a rate that provides a smooth, clear image to users without requiring video streaming providers to re-encode their libraries and without introducing motion prediction. In the embodiments described herein, the playback speed of a particular frame or group of frames is sped up or slowed down by a fraction of a second to accommodate more or fewer frames over a varying display interval. These playback speed differences are imperceptible to the user, providing smooth playback of the video content regardless of the original frame rate or the refresh rate of the display on which the content is displayed.

[0021] A system for adapting a video frame rate to a refresh rate of an electronic display may also access video content encoded at a particular frame rate. The system also determines a refresh rate of an electronic display on which the video content is displayed. The system then identifies a time interval in the video content to which a frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display. The system further presents the time interval of the video content to an electronic display. The presenting involves adjusting a playback speed of the identified interval of the video content such that a portion of the identified interval is played using a sequence of original video frames and replicated frames. The presenting also involves adjusting a playback speed of a different portion of the identified interval of the video content such that the portion of the interval is played using a different sequence of original video frames and replicated frames.

[0022] The other sequence of duplicate frames includes a minimum number of duplicate frames. Adjusting the playback speed of the identified interval of video content may include speeding up playback of a first portion of the identified interval of video content. Adjusting the playback speed of other portions of the identified interval of video content may include speeding down playback of the other portions of the identified interval of video content. The playback speed is adjusted within a specified maximum or slowest playback speed range. Adjusting the playback speed may include modifying a presentation timestamp associated with the video content. The identified time interval is greater than 1 second, and in some cases is at least 3 seconds.

[0023] The playback speed may be adjusted based on the type of video frame being displayed. An interval of video content including a primary duplicated frame is automatically played at a specified playback speed. An interval of video content including a secondary duplicated frame is automatically played at a specified playback speed. A plurality of duplicated frames are repeated at a specified interval. A playback speed for each portion of the interval of video content is stored in a look-up table. The interval of video content is played on the electronic display according to playback information indicated in the look-up table. The look-up table includes a delta value that is applied while the time interval of video content is being presented on an electronic display to adjust a presentation timestamp for each frame of the time interval of video content.

[0024] In some cases, the presentation of the time interval of the video content is tested on an electronic display and quality metrics related to the playback of the video content are verified. The frame rate of the video content varies depending on the implementation. In some cases, the frame rate of the video content is 24 frames per second and the refresh rate of the electronic display is 50 Hz. In other cases, the frame rate of the video content is 24 frames per second and the refresh rate of the electronic display is 60 Hz. These embodiments are described in more detail below with reference to Figures 1-3, which introduce a streaming media player and streaming media environment, Figures 4 and 5, which illustrate computing architectures and methods for computing a frame transform, and Figures 6-12, which illustrate different implementations and alternative embodiments for performing the frame transform.

[0025] A preferred ecosystem for adaptive streaming of multimedia content is described in detail below with reference to Figure 1. Discussions corresponding to Figures 2 and 3 provide overviews of a preferred delivery infrastructure and a preferred content player, respectively. A detailed description corresponding to a computer-implemented method for adaptive streaming of multimedia content is provided in conjunction with Figure 4.

[0026] 1 is a block diagram of a content distribution ecosystem 100 including a distribution infrastructure 110 in communication with a content player 120. In some embodiments, the distribution infrastructure 110 may be configured to encode data at a particular data rate and forward the encoded data to the content player 120. The content player 120 may be configured to receive the encoded data via the distribution infrastructure 110, decode the data, and play it for a user. The data provided by the distribution infrastructure 110 may include audio, video, text, images, animation, interactive content, haptic data, virtual or augmented reality data, location data, gaming data, or other types of data that may be provided via streaming.

[0027] The distribution infrastructure 110 generally represents any services, hardware, software, or other infrastructure components configured to distribute content to end users. For example, the distribution infrastructure 110 may include content aggregation systems, media transcoding and packaging services, network components, and / or various other types of hardware and software. The distribution infrastructure 110 may be implemented as a highly complex distribution system, a single media server or device, or anything in between. In some examples, regardless of size or complexity, the distribution infrastructure 110 may include at least one physical processor 112 and at least one memory device 114. As discussed herein, one or more modules 116 may be stored or mounted on the memory 114 to enable adaptive streaming.

[0028] The content player 120 generally represents any type or form of device or system capable of playing audio and / or video content provided via the distribution infrastructure 110. Examples of the content player 120 include, but are not limited to, a mobile phone, a tablet, a laptop computer, a desktop computer, a television, a set-top box, a digital media player, a virtual reality headset, an augmented reality glasses, and / or any other type or form of device capable of rendering digital content. Like the distribution infrastructure 110, the content player 120 may include a physical processor 122, a memory 124, and one or more modules 126. Some or all of the adaptive streaming processes described herein may be performed or enabled by the modules 126, and in some examples, the modules 116 of the distribution infrastructure 110 may cooperate with the modules 126 of the content player 120 to provide adaptive streaming of multimedia content.

[0029] In particular embodiments, one or more of modules 116 and / or 126 in Figure 1 may represent one or more software applications or programs that, when executed by a computing device, cause the computing device to perform one or more tasks. For example, as described in more detail below, one or more of modules 116 and 126 may represent modules stored and configured to execute on one or more general-purpose computing devices. One or more of modules 116 and 126 in Figure 1 may represent all or a portion of one or more special-purpose computers configured to perform one or more tasks.

[0030] Further, one or more of the modules, processes, algorithms, or steps described herein may convert data, a physical device, and / or a presentation of a physical device from one form to another. For example, one or more of the modules detailed herein may receive audio data to be encoded, convert the audio data by encoding it, output the result of the encoding for use in an adaptive audio bitrate system, and transmit the result of the conversion to a content player and render the converted data for viewing by an end user. Additionally or alternatively, one or more of the modules detailed herein may execute on a computing device, store data on the computing device, and / or interact with the computing device to convert a processor, volatile memory, non-volatile memory, and / or other portions of a physical computing device from one form to another.

[0031] The physical processors 112 and 122 generally represent any type or form of hardware-implemented processing unit capable of interpreting and / or executing computer-readable instructions. As an example, the physical processors 112 and 122 may be capable of accessing and / or modifying one or more of the modules 116 and 126, respectively. Additionally or alternatively, the physical processors 112 and 122 may execute one or more of the modules 116 and 126 to facilitate adaptive streaming of multimedia content. Examples of the physical processors 112 and 122 include, but are not limited to, a microprocessor, a microcontroller, a central processing unit (CPU), a field programmable gate array (FPGA) implementing a soft-core processor, an application specific integrated circuit (ASIC), one or more portions thereof, one or more variations or combinations thereof, and / or other suitable physical processors.

[0032] Memories 114 and 124 generally represent any type or form of volatile or non-volatile storage device or medium capable of storing data and / or computer-readable instructions. As an example, memories 114 and / or 124 may store, carry, and / or retain one or more of modules 116 and 126. Examples of memories 114 and / or 124 include, but are not limited to, random access memory (RAM), read-only memory (ROM), flash memory, hard disk drive (HDD), solid state drive (SSD), optical disk drive, cache, one or more variations or combinations thereof, and / or other suitable memory devices or systems.

[0033] 2 is a block diagram of preferred components of a content delivery infrastructure 110 according to certain embodiments. The delivery infrastructure 110 may include storage 210, services 220, and network 230. Storage 210 generally represents any device, set of devices, and / or system capable of storing content for delivery to end users. Storage 210 may include a central repository with devices capable of storing terabytes or petabytes of data and / or may include a distributed storage system (e.g., appliances that mirror or cache content at Internet interconnect locations to provide faster access to the mirrored content within a particular region). Storage 210 may also be configured in any other suitable manner.

[0034] As shown, storage 210 may store, among other things, content 212, user data 214, and / or log data 216. Content 212 may include television programs, movies, video games, user-generated content, and / or any other suitable type or format of content. User data 214 may include personally identifiable information (PII), payment information, preference settings, language and accessibility settings, and / or any other information associated with a particular user or content player. Log data 216 may include browsing history information, network throughput information, and / or any other metrics associated with a user's connection to or interaction with delivery infrastructure 110.

[0035] Services 220 may include personalization service 222, encoding service 224, and / or packaging service 226. Personalization service 222 may personalize recommendations, content streams, and / or other aspects of the user experience with distribution infrastructure 110. Encoding service 224 may compress media at different bit rates that allow real-time switching between different encodings, as described in more detail below. Packaging service 226 may package encoded videos prior to deployment of the encoded videos on a distribution network, such as network 230, for streaming.

[0036] Network 230 generally represents any medium or architecture capable of facilitating communication or data transfer. Network 230 may facilitate communication or data transfer using wireless and / or wired connections. Examples of network 230 may include, but are not limited to, an intranet, a wide area network (WAN), a local area network (LAN), a personal area network (PAN), the Internet, power line communication (PLC), a cellular network (e.g., a Global System for Mobile Communications (GSM) network), one or more portions thereof, one or more variations or combinations thereof, and / or any other suitable network. For example, as shown in FIG. 2, network 230 may include an Internet backbone 232, an Internet service provider network 234, and / or a local network 236. As discussed in more detail below, bandwidth limitations and bottlenecks within one or more of these network segments may trigger video and / or audio bitrate throttling.

[0037] Figure 3 is a block diagram of a preferred implementation of the content player 120 of Figure 1. The content player 120 generally represents any type or form of computing device capable of reading computer-executable instructions. The content player 120 may include, but is not limited to, a laptop, a tablet, a desktop, a server, a mobile phone, a multimedia player, an embedded system, an Internet of Things (IoT) device such as a wearable device (e.g., a smart watch, smart glasses, etc.), a smart vehicle, a game console, a smart appliance, or any variation or combination of one or more of these, and / or any other suitable computing device.

[0038] 3, in addition to the processor 122 and memory 124, the content player 120 may include a communications infrastructure 302 and a communications interface 322 coupled to a network connection 324. The content player 120 may also include a graphics interface 326 coupled to a graphics device 328, an input interface 334 coupled to an input device 336, and a storage interface 338 coupled to a storage device 340.

[0039] Communications infrastructure 302 generally represents any type or form of infrastructure capable of facilitating communication between one or more components of a computing device. Examples of communications infrastructure 302 include, but are not limited to, any type or form of communications bus (e.g., Peripheral Component Interconnect (PCI) bus, PCI Express (PCIe) bus, memory bus, front side bus, Integrated Drive Electronics (IDE) bus, control or register bus, host bus, etc.).

[0040] As previously mentioned, memory 124 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and / or other computer-readable instructions. In some examples, memory 124 may store and / or implement an operating system 308 for execution by processor 122. As one example, operating system 308 may include and / or represent software that manages computer hardware and software resources and / or provides common services to computer programs and / or applications on content player 120.

[0041] The operating system 308 may perform various system management functions, such as managing hardware components (e.g., the graphics interface 326, the audio interface 330, the input interface 334, and / or the storage interface 338). The operating system 308 may also provide a process and memory management model for the playback application 310. Modules of the playback application 310 may include, for example, a content buffer 312, an audio decoder 318, and a video decoder 320.

[0042] The playback application 310 may be configured to retrieve digital content via the communication interface 322 and play the digital content via the graphics interface 326, which may send rendered video signals to the graphics device 328. During normal operation, the playback application 310 may accept requests from a user to play a particular title or particular content. The playback application 310 may then identify one or more encoded video and audio streams associated with the requested title. After the playback application 310 finds the encoded streams associated with the requested title, the playback application 310 may download from the delivery infrastructure 110 a sequence header index associated with each encoded stream associated with the requested title. The sequence header index associated with the encoded content may include information related to the data of the encoded sequence included in the encoded content.

[0043] In one embodiment, the playback application 310 may begin downloading content associated with the requested title by downloading sequence data encoded at the lowest audio and / or video playback bitrate to minimize start-up time for playback. The requested digital content file may then be downloaded to a content buffer 312, which may be configured to function as a first-in, first-out queue. In one embodiment, each unit of downloaded data may include a unit of video data or a unit of audio data. When a unit of video data associated with the requested digital content file is downloaded to the content player 120, the unit of video data may be sent to the content buffer 312. Similarly, when a unit of audio data associated with the requested digital content file is downloaded to the content player 120, the unit of audio data may be sent to the content buffer 312. In one embodiment, the unit of video data may be stored in a video buffer 316 within the content buffer 312, and the unit of audio data may be stored in an audio buffer 314 within the content buffer 312.

[0044] Video decoder 320 may read units of video data from video buffer 316 and output the units of video data in a sequence of video frames corresponding to a fixed span in duration of play time. Reading a unit of video data from video buffer 316 may effectively dequeue the unit of video data from video buffer 316. The sequence of video frames may then be rendered by graphics interface 326 and sent to graphics device 328 for display to a user.

[0045] The audio decoder 318 may read units of audio data from the audio buffer 314 and output the units of audio data as a sequence of audio samples that are generally time-synchronous with the sequence of decoded video frames. In one embodiment, the sequence of audio samples may be sent to an audio interface 330, which may convert the sequence of audio samples into an electrical audio signal. The electrical audio signal may then be sent to a speaker of an audio device 332, thereby generating an acoustic output.

[0046] In situations where the bandwidth of the distribution infrastructure 110 is limited and / or variable, the playback application 310 may download and buffer consecutive portions of video and / or audio data from video encodings having different bit rates based on various factors (e.g., scene complexity, audio complexity, network bandwidth, device capabilities, etc.). In some embodiments, video playback quality may be prioritized over audio playback quality. Audio playback and video playback quality may also be balanced against one another, and in some embodiments, audio playback quality may be prioritized over video playback quality.

[0047] Graphics interface 326 may be configured to generate frames of video data and transmit the frames of video data to graphics device 328. In one embodiment, graphics interface 326 may be included as part of an integrated circuit along with processor 122. Alternatively, graphics interface 326 may be configured as a hardware accelerator separate from (i.e., not integrated within) a chipset that includes processor 122.

[0048] Graphics interface 326 may generally represent any type or form of device configured to transfer images for display on graphics device 328. For example, graphics device 328 may be manufactured using liquid crystal display (LCD) technology, cathode ray technology, and light emitting diode (LED) display technology (organic or inorganic). In some embodiments, graphics device 328 may also include virtual reality displays and / or augmented reality displays. Graphics device 328 may include any technically feasible means for generating images for display. In other words, graphics device 328 may generally represent any type or form of device capable of visually displaying information transferred by graphics interface 326.

[0049] 3, the content player 120 may also include at least one input device 336 coupled to the communications infrastructure 302 via an input interface 334. The input device 336 may generally represent any type or form of computing device capable of providing computer or human generated input to the content player 120. Examples of the input device 336 may include, but are not limited to, a keyboard, a pointing device, a voice recognition device, a touch screen, a wearable device (e.g., a glove, a watch, etc.), a controller, one or more variations or combinations thereof, and / or any other type or form of electronic input mechanism.

[0050] The content player 120 may also include a storage device 340 coupled to the communications infrastructure 302 via a storage interface 338. The storage device 340 may generally represent any type or form of storage device or medium capable of storing data and / or other computer-readable instructions. For example, the storage device 340 may be a magnetic disk drive, a solid state drive, an optical disk drive, a flash drive, or the like. The storage interface 338 may generally represent any type or form of interface or device for transferring data between the storage device 340 and other components of the content player 120.

[0051] Many other devices or subsystems may be included in or connected to the content player 120. Conversely, one or more of the components and devices shown in FIG. 3 need not necessarily be present to practice the embodiments described and / or illustrated herein. The above-referenced devices and subsystems may also be interconnected in different ways than those shown in FIG. 3. The content player 120 may also employ any number of software, firmware, and / or hardware configurations. For example, one or more of the exemplary embodiments disclosed herein may be encoded as a computer program (also referred to as computer software, software application, computer readable instructions, or computer control logic) on a computer-readable medium. As used herein, the term "computer-readable medium" may refer to any form of device, carrier, or medium capable of storing or carrying computer-readable instructions. Examples of computer-readable media include, but are not limited to, transmissive media such as carrier waves, and non-transitory media such as magnetic storage media (e.g., hard disk drives, tape drives, etc.), optical storage media (e.g., compact discs (CDs), digital video discs (DVDs), and Blu-ray discs), electronic storage media (e.g., solid-state drives and flash media), and other digital storage systems.

[0052] The computer readable medium containing the computer program may be loaded into the content player 120. All or part of the computer program stored on the computer readable medium may then be stored in the memory 124 and / or the storage device 340. When executed by the processor 122, the computer program loaded into the memory 124 may cause the processor 122 to perform and / or be a means for performing one or more functions of the exemplary embodiments described and / or illustrated herein. Additionally or alternatively, one or more of the exemplary embodiments described and / or illustrated herein may be implemented in firmware and / or hardware. For example, the content player 120 may be configured as an application specific integrated circuit (ASIC) adapted to implement one or more of the exemplary embodiments disclosed herein.

[0053] 4 illustrates a computing environment 400 that includes a computer system 401. The computer system 401 may be virtually any type of computer system, including a local computer system or a distributed (e.g., cloud) computer system. The computer system 401 includes at least one processor 402 and at least some system memory 403. The computer system 401 also includes program modules for performing a variety of different functions. The program modules may be hardware-based, software-based, or a combination of hardware and software. Each program module uses computing hardware and / or software to perform a particular function, including those described below.

[0054] For example, the communication module 404 communicates with other computer systems. The communication module 404 includes wired or wireless communication means for receiving and / or transmitting data to and from other computer systems. These communication means may include, for example, hardware radios including a hardware-based receiver 405, a hardware-based transmitter 406, or a hardware-based combined transceiver capable of both receiving and transmitting data. The radios may be WIFI radios, cellular radios, Bluetooth radios, Global Positioning System (GPS) radios, or other types of radios. The communication module 404 interacts with databases, mobile computing devices (such as mobile phones or tablets), embedded or other types of computing systems.

[0055] The computer system 401 also includes a video content access module 409. The video content access module 409 receives video content 407 from a content source, which may be a producer of video (e.g., a movie or television program), a distributor of video (e.g., a streaming video content provider), or other entity that provides video content to electronic devices. As noted above, the computer system 401 may be any type of computer system, including a set-top box, a cell phone, a laptop, a PC, or other computer system that runs software applications, including video streaming client applications. At least one of these applications receives the video content 407 and presents the video content on a display (e.g., display 420).

[0056] The video content 407 is encoded at a specified frame rate. The frame rate may be 24 fps, 25 fps, 30 fps, or other frame rate. The video content access module 409 accesses the video content 407 and prepares the video content for subsequent operation on the computer system 401. Before or after receiving the video content 407, the refresh rate determination module 410 determines the rate at which the electronic display 420 is set to update the content. For example, the display 420 may refresh the content for presentation at 50 Hz, 60 Hz, 100 Hz, 120 Hz, or some other refresh rate. Thus, the display redraws or re-presents a particular video frame 50, 60, 100, or 120 times per second. As mentioned above, display refresh rates vary around the world. For an optimal viewing experience, the refresh rate 421 of the display 420 is synchronized with the encoded frame rate 408 of the video content 407, so that the video frames displayed on the display are stable. That is, video frames are duplicated in a way that is not noticeable to the viewer.

[0057] To complete this replication, a time interval determination module 412 identifies or locates a time interval 413 of the video content. In at least some embodiments, this time interval 413 is longer than 1 second, and thus, in contrast to conventional systems that only focus on 1 second time intervals, the time interval to which frame rate conversion is applied covers 2 seconds, 3 seconds, or more. A frame rate conversion module 414 performs frame rate conversion based on the frame rate 408 of the video content and the refresh rate 421 of the display.

[0058] As part of the frame rate conversion process, the frame rate conversion module 414 looks at a relatively long interval of the video content (e.g., 3 seconds) and generates a first sequence of duplicated frames 417 for playback following the original video frames 416A of that time interval, and also generates a second sequence of duplicated frames 418 for playback following the original video frames 416B of that time interval. This time interval 413 is then played on the display 420 along with its respective sequences of original and duplicated frames. However, certain portions of the time interval of the video content 407 are played at different speeds. The playback speed adjustment module 415 speeds up or slows down the playback of various sequences of original and / or duplicated frames to generate a seamless video playback to the viewer's eyes. These concepts are further described with respect to the method 500 in FIG. 5 below.

[0059] Figure 5 is a flow diagram of a preferred computer-implemented method 500 for matching a video frame rate with a refresh rate of an electronic display. The steps illustrated in Figure 5 may be performed by any suitable computer-executable code and / or computing system, including the systems illustrated in Figures 1-4. In one example, each of the steps illustrated in Figure 5 may represent an algorithm whose structure includes and / or is represented by multiple sub-steps, an example of which is provided in more detail below.

[0060] As shown in FIG. 5, in step 510, one or more of the systems or modules described herein access a portion of the video content encoded at the identified frame rate. For example, the video content accessing module 409 of FIG. 4 accesses the video content 407 encoded at the frame rate 408. In some examples, the frame rate is 24 fps. In step 520, the refresh rate determination module 410 of the computer system 401 determines the refresh rate of the electronic display 420 on which the video content is presented. In some examples, the refresh rate 421 of the display 420 is 50 Hz, and in other examples, the refresh rate is 60 Hz. The time interval determination module 412 determines the time interval 413 to apply the frame rate conversion in step 530. In some examples, the time interval is 3 seconds. Thus, in this example, the frame rate conversion is applied over 3 seconds of the video content to synchronize the frame rate 408 of the video content 407 with the refresh rate 421 of the electronic display 420.

[0061] At step 540, frame rate conversion module 414 performs a frame rate conversion over time interval 413 to present the time interval of video content on electronic display 420. This frame rate conversion and presentation process on electronic display 420 includes adjusting the playback speed of a first portion of the identified interval of video content such that the first portion of the identified interval is played back using original video frames and a first sequence of duplicated frames. The playback speed of a subsequent portion of the identified interval of video content is also adjusted such that the second portion of the identified interval is played back using original video frames and a second sequence of different duplicated frames.

[0062] For example, as shown in Figure 6, time interval 601 (which may be the same as or different from time interval 413 in Figure 4) is divided into different portions. More or fewer portions may be used, but the embodiment of Figure 6 includes two portions. The dotted lines in Figure 6 indicate that time interval 601 may be selected from anywhere, including the beginning, middle, or end of the video content. In some cases, time interval 601 spans multiple refreshes of display 420, and in other cases, time interval 601 spans a single refresh of display 420.

[0063] A first portion 602 of the time interval 601 includes a sequence of original video frames 603A and a sequence of duplicated frames 604. A second portion 606 of the time interval 601 includes a sequence of original video frames 603B and a different sequence of duplicated frames 605. The first and second portions of the time interval may be divided in substantially any ratio, including 50 / 50, 60 / 40, 70 / 30, 80 / 20, 90 / 10, or other ratios. Thus, the first portion 602 may be more or less of the time interval than the second portion 606. Each portion includes original frames and / or duplicated frames. The playback speed of these original and duplicated frames is adjustable by the playback speed adjustment module 415.

[0064] In at least some embodiments, the playback speed of the original frames or the playback speed of the first or second replicas 604 / 605 may be increased or decreased to ensure that a certain number of frames fit exactly within the time interval 601. For example, if the video content 407 of FIG. 4 has a frame rate 408 of 24 fps, the time interval 601 may include 24 original frames, 24 replicated frames in the first sequence of replicas 604, and 2 replicated frames in the second sequence of replicas 605. In other embodiments, the time interval 601 may include 22 original frames, 22 replicated frames in the first sequence of replicas 604, and 6 replicated frames in the second sequence of replicas 605. The playback speed of these original and replicated frames may be increased or decreased to ensure that the video content is played back smoothly to the user. This increase or decrease in playback speed may be done without adjusting the audio speed.

[0065] Beyond certain limits, adjusting the playback speed of video content without adjusting the playback speed of audio leads to noticeable A / V synchronization problems, such as seeing talking before the user hears the sound or hearing speech without the mouth moving. However, within certain limits (e.g., between -125ms and +45ms), audio and video may be perceived as synchronized even if they are not perfectly aligned. Video content is typically played back using a presentation timestamp (PTS). In some embodiments, this presentation timestamp is modified to speed up or slow down the playback of video content. In other embodiments, a lookup table is implemented in combination with the PTS, which adds or subtracts a time value from the PTS and uses the modified value when playing back video content. Thus, by lengthening the time interval during which duplicate frames are created to match the refresh rate of the display and speeding up or slowing down the video playback within certain limits, embodiments herein allow for an even number of duplicate frames to be added over the time interval. This significantly improves the smoothness of the video playback and reduces or eliminates the judder introduced by other frame rate conversion solutions.

[0066] As mentioned above and shown in FIG. 7, the source frame rate 701 of the video content is typically 24 fps (or 24 Hz), 24 Hz, 30 Hz, 50 Hz, or 60 Hz. The frame rate conversion module 414 of FIG. 4 applies a frame rate conversion 702 to match the refresh rate 703 of the display. As shown in FIG. 8, the frame rate conversion of some video content frame rates may appear smoother and have fewer artifacts noticeable to the viewer. For example, in case 1 (column 801), the frame source rate is 50 Hz and is converted to a 60 Hz display (column 802). The ratio of original to duplicated frames is 1.2 (column 803), or 50 original frames and 10 duplicated (primary) frames (column 804). For case 2, the frame source rate is 30 Hz and is converted to 50 Hz with a ratio of 1.67, resulting in 30 original frames and 20 primary replicated frames for a total of 50 frames. For case 5, the frame source rate is 24 Hz and is converted to 60 Hz with a ratio of 2.5, resulting in 24 original frames, 24 primary replicated frames, and 12 secondary replicated frames (column 805) for a total of 60 frames.

[0067] Most of the cases 1-6 in FIG. 8 play smoothly and the viewer does not notice any serious judder in the image. However, in cases 7-9 where the frame rate conversion is from 24Hz to 25Hz or from 24Hz to 50Hz, the ratios of 1.042 and 2.083 occur (column 803). Such ratios lead to cases where only a single primary replicated frame is displayed (e.g. case 7), or where 24 primary replicated frames are displayed together with two secondary replicated frames (column 805) (e.g. case 8), or where 24 primary replicated frames are displayed together with one secondary replicated frame and one tertiary replicated frame (column 806) (case 9). Higher order replicated frames are usually less desirable since it means fewer frame replicates and longer intervals between frames.

[0068] For example, a first order frame is a frame that replicates itself once; a second order frame is a frame that replicates itself twice, and a third order frame is a frame that replicates itself three times. A higher frame order indicates that the original frame is replicated more times, which reduces smoothness and increases the likelihood of judder. Therefore, in the embodiments described herein, the system generates a fixed replication interval to increase smoothness during playback. The replicated frames are kept below a minimum number (e.g., 2 replicas, second order) to avoid judder and other playback issues.

[0069] FIG. 9 shows an example embodiment of duplicated frames. Three original frames 901 are duplicated to 902 at a 3:2 pulldown rate. FIG. 10A further illustrates this 3:2 pulldown rate. In this example, frames 1000A are converted from 24 fps to 60 fps. The frames are spaced over a 1 second time window 1001A. Each frame is duplicated once or twice. Thus, adding to the original frame, original frame + single duplicate = 2, and original frame + double duplicate = 3. Thus, the 3:2 pattern shown in FIG. 9 is repeated over a 1 second period. Each original frame + single duplicate is displayed in 33 ms (1002A), and each original frame + double duplicate is displayed in 48 ms. These times correspond to two or three 16 ms segments 1004A resulting from the 60 Hz refresh rate of the television 1005A. Other duplication patterns and intervals may be used, such as 3:2:2 or 3:2:2:2. Some patterns are suitable for displays operating at 50Hz, while others are suitable for displays operating at 60Hz.

[0070] FIG. 10B shows an alternative example where frames 1000B are converted from 24 fps to 50 fps. The frames are spaced over a 1 second time window 1001B, where each frame is duplicated once or twice. The original frame + single duplicate each is displayed in 40 ms (1002B), and the original frame + double duplicate is displayed in 60 ms. These times coincide with the two or three 20 ms segments 1004B resulting from the 50 Hz refresh rate of the television 1005B. Other duplication patterns or intervals may also be used as described above.

[0071] While the examples shown in Figures 10A and 10B show one second of content, it is recognized that embodiments herein may distribute the time division of frames over different time intervals. For example, as shown in Figure 10C, if a three second time interval is selected for a movie encoded at 24 fps, the movie will have 72 frames over a three second time interval. These 72 frames may be presented on a 50 Hz display with 150 display cycles in three seconds. These 72 frames may be converted at a constant rate by the frame rate conversion module 414 of Figure 4 along with a first sequence of original frames 416A and duplicated frames 417, and other original frames 416B with their own corresponding distinct set of duplicated frames 418. The first second of the content 1001C includes original and duplicated frames played in steady slices of 40 milliseconds each (frame and duplicate). The second second of the content also includes original and duplicated frames played in steady slices of 40 milliseconds each frame. However, the third second of the content within the three second window includes multiple 60 millisecond slices that are played (the original frame and two duplicate frames). As described below in FIG. 11B, these six 60 millisecond slices may be modulated at different rates to realign the audio and video.

[0072] For example, FIG. 11A shows a frame rate conversion (FRC) window 1100, where the time interval of the window is 3 seconds. This 3 second time window is divided into three different segments of 1 second each (0 to 1, 1 to 2, and 2 to 3). In this example, similar to FIG. 10A, the encoded frame rate of the video content is 24 fps. Therefore, 72 frames are displayed in the 3 second time window. In contrast to a conventional playback application or set-top box that plays frames at a constant speed, the embodiments herein can play the first 24 frames in the first second of the content. Thus, as shown in the chart 1100, 24 original frames are displayed in the first second, from 0 to 1, along with 24 primary duplicate frames. This 1:1 match provides a smooth playback experience on a 50Hz display, since each frame of the electronic display has a corresponding original or primary duplicate frame. These frames are displayed in the duration of 0.96 seconds of the electronic display.

[0073] Continuing with this example, the second 24 original frames are again provided to the display by a frame rate conversion module (e.g., 414 in FIG. 4) along with the 24 primary duplicate frames. These 48 frames, along with the previous 48 frames corresponding to 0 to 1 second of content, are played back at a faster speed to allow for the display of 48 frames in a 0.96 second duration for video content encoded at 24 fps. The playback speed adjustment module 415 in FIG. 4 adjusts the playback speed up to allow these 96 frames of 2 seconds of content to be played back in 1.92 seconds, synchronizing correctly with the 50 Hz display. However, the faster video playback does not necessarily mean that the audio will play back faster, which may be noticeable to the viewer. In contrast, the increase in video speed is kept within the aforementioned range for audio (e.g., within the range of -125 ms to +45 ms).

[0074] FIG. 11B illustrates how audio and video are separated (VA) when the video playback speed is increased. For example, at time 0, A / V sync 1151 occurs. At this point, the audio and video are perfectly synchronized. Over the first 2 seconds of the 3 second time window (e.g., the period represented by 1153), two other A / V syncs occur. However, line 1152, which represents the display of the original and duplicate frames, shows that the display of these frames is slowly out of sync with the audio (e.g., 40 ms out of sync at 1 second and 80 ms out of sync at 2 seconds). Ideally, the A / V sync occurs at point 0 for each new frame. However, as shown in FIG. 11A, the third second of the 3 second window shows only 24 original frames and 24 primary duplicate frames, as well as 6 secondary frames, shown with a duration of 2.08 seconds. These frames are played back more slowly, as shown by period 1154 in FIG. 11B. As playback slows down, the audio and video gradually return to sync, and by the end of the 3 second window, A / V sync occurs again at point 0. Throughout this 3 second time window, 150 frames are displayed (24+24+24+24+24+24+6), which is exactly in sync with the 150 cycles presented on a 50Hz display.

[0075] Thus, the playback speed adjustment module 415 of the frame rate conversion module 415 of FIG. 4 can adjust and increase the playback speed of some video content for a certain interval and slow down the playback speed of other video content for the same interval, so that by the end of the interval, the audio and video are back in sync. Throughout this process, certain limits can be established and maintained so that the playback speed is adjusted within a certain maximum or slowest speed. By staying within these slowest or maximum speed boundaries, the viewing user will not notice the change in video speed. Rather, the viewer's eye will simply interpolate the image as a smooth motion.

[0076] In some cases, when the playback speed adjustment module 415 adjusts the playback speed of a portion of the video content, the adjustment module modifies the presentation timestamps (PTS) associated with the video content and the intervals of the duplicated frames in each order. In such an embodiment, the sequence is 24:24:24 to allow the secondary duplicated frames in the last section of the window to have a fixed interval, as shown in chart 1100C of FIG. 11C. The PTS is adjusted over 72 frames. For the first 48 frames, the PTS is adjusted downwards to speed up the playback. Then, after frame 48, the PTS is adjusted upwards to slow down the playback speed and return to the alignment point. In some cases, the playback speed adjustment module 415 creates a lookup table that adds or subtracts time from each PTS entry, and then uses the lookup table when playing the video content. In some cases, the lookup table includes a delta value that is applied during the presentation of the time interval of the video content on the electronic display. The delta value is used to adjust the presentation timestamp of each frame within the time interval of the video content. Thus, the look-up table may store delta values ​​that are used to indicate the playback speed of each interval of a piece of video content.

[0077] In the exemplary embodiment of Figures 11A and 11B, it is understood that a time window of substantially any length may be used, and any number of primary or secondary replicas may be used. In some cases, the secondary frames (or the second sequence of duplicate frames) include at least a minimum threshold number of duplicate frames. This minimum threshold number may be substantially any number, and is set according to policy. The minimum threshold number may be different, for example, for different encoded frame rates, different display refresh rates, or based on other situational settings or preferences.

[0078] In some cases, the playback speed of certain video content is adjusted based on the type of video frames being presented. For example, some video content may be encoded at a higher speed for fast motion video or other effects. The playback speed of different segments of a time window may be adjusted to accommodate this type of video content. In some cases, intervals of video content that contain only primary duplicate frames are automatically played at a certain playback speed, and intervals of video content that contain secondary duplicate frames are automatically played at a different playback speed. Thus, an application or set-top box that plays video content to a display may automatically adjust the playback speed when a certain type of duplicate frame is detected.

[0079] FIG. 12 illustrates an embodiment in which time intervals in video content are tested to ensure they are within set A / V synchronization boundaries. For example, chart 1200 in FIG. 12 shows time on the x-axis and time values ​​of audio / video synchronization on the y-axis. In this embodiment of the test, the y-axis shows that A / V synchronization can be up to +35 ms ahead and up to -165 ms behind. At point 1201, the A / V synchronization is close to or exceeds the threshold of +35 ms, so it is synchronized at this point and skips original video frames to bring the synchronization closer to 0 (video is ahead by 42 ms per frame at 24 frames per second). At points 1202 and 1203, the A / V synchronization also drifts towards its respective maximum threshold. At these points, the video is played faster or slower to realign the audio and video to the desired synchronization level 1204 by repeating the original frames (video is behind by 42 ms per frame at 24 fps). Throughout the presentation of a portion of the video content (e.g., 407 in FIG. 4), the computer system 401 may test each time interval or the presentation of specific time intervals to ensure that the A / V synchronization is within specified boundaries. Various quality metrics may be measured for the playback of the video content, including the number of primary replicated frames used, the number of secondary or tertiary replicated frames used, the synchronization level between audio and video, or other metrics. These metrics may be used as feedback to enable the viewer to have a positive viewing experience without noticeable video freezing or fast motion effects.

[0080] In some embodiments, a corresponding system includes a physical processor and a physical memory, the physical memory including computer-executable instructions that, when executed by the physical processor, cause the physical processor to: access a portion of video content encoded at a particular frame rate, determine a refresh rate of an electronic display on which the video content is to be displayed, identify a time interval of the video content to which a frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display, and present the identified time interval of the video content to the electronic display, wherein said presenting includes adjusting a playback speed of an initial first portion of the identified time interval of the video content such that the first portion of the identified interval is played using a first sequence of original video frames and replicated frames, and adjusting a playback speed of a subsequent portion of the identified time interval of the video content such that the second portion of the identified time interval is played using a second sequence of original video frames and replicated frames.

[0081] A corresponding non-transitory computer-readable medium includes computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to access a portion of video content, the video content being encoded at a particular frame rate, determining a refresh rate of an electronic display on which the video content is to be displayed, identifying a time interval of the video content for which a frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display, and presenting the identified time interval of the video content to the electronic display, the presenting including adjusting a playback speed of a first portion of the identified interval of the video content such that the first portion of the identified interval is played back using a first sequence of original video frames and duplicated frames, and adjusting a playback speed of a subsequent portion of the identified interval of the video content such that the second portion of the identified interval is played back using a second sequence of original video frames and duplicated frames.

[0082] Thus, in this manner, the video content is distributed into intervals of longer length. These longer intervals allow for different variations of the original and duplicate frames. Furthermore, the playback speed is varied in these intervals to provide a smooth and uniform playback across the electronic display. The embodiments described herein can be used in virtually any country to convert virtually any source material to any display frame rate. As such, these implementations can be used by video streaming providers in any market, regardless of what frame rate encoding or display refresh rate is used in that country.

[0083] Working Example 1. A computer-implemented method of accessing a portion of video content encoded at a particular frame rate, determining a refresh rate of an electronic display on which the video content is to be displayed, identifying a time interval of the video content in which a frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display, and presenting the identified time interval of the video content on the electronic display, the presenting comprising: adjusting a playback speed of a first portion of the identified interval of video content such that the first portion of the identified interval is played using original video frames and a first sequence of duplicated frames, and adjusting a playback speed of a subsequent portion of the identified interval of video content such that the second portion of the identified interval is played using the original video frames and a second sequence of a different sequence of the duplicated frames.

[0084] 2. The computer-implemented method of claim 1, wherein the second sequence of different sequences of duplicate frames includes at least a minimum threshold number of duplicate frames.

[0085] 3. The computer-implemented method of claim 1, wherein adjusting the playback speed of the first portion of the identified interval of video content comprises increasing the playback speed of the first portion of the identified interval of video content.

[0086] 4. The computer-implemented method of claim 1, wherein adjusting the playback speed of the second portion of the identified interval of video content comprises decreasing the playback speed of the second portion of the identified interval of video content.

[0087] 5. The computer-implemented method of claim 1, wherein the playback speed is adjusted within a specified maximum or slowest playback speed range.

[0088] 6. The computer-implemented method of claim 1, wherein adjusting the playback speed comprises modifying a presentation timestamp associated with the video content.

[0089] 7. The computer-implemented method of claim 1, wherein the specified time interval is greater than one second.

[0090] 8. The computer-implemented method of claim 1, wherein the specified time interval is at least 3 seconds.

[0091] 9. The computer-implemented method of claim 1, wherein the playback speed is adjusted based on the type of video frame being presented.

[0092] 10. The computer-implemented method of claim 9, wherein an interval of the video content that includes one or more primary duplicate frames is automatically played at a specified play speed.

[0093] 11. The computer-implemented method of claim 9, wherein an interval of the video content that includes one or more secondary duplicate frames is automatically played at a specified play speed.

[0094] 12. The computer-implemented method of claim 1, wherein the plurality of replicated frames are repeated at a specified interval.

[0095] 13. A system comprising at least one physical processor and a physical memory containing computer-executable instructions which, when executed by the physical processor, cause the physical processor to access a portion of video content encoded at a particular frame rate, determine a refresh rate of an electronic display on which the video content is displayed, identify a time interval of the video content to which frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display, and present the identified time interval of the video content on the electronic display, the presenting comprising: adjusting a playback speed of a first portion of the identified interval of video content so that the first portion of the identified interval is played using a first sequence of original video frames and duplicated frames, and adjusting a playback speed of a subsequent portion of the identified interval of video content so that the second portion of the identified interval is played using the original video frames and a second sequence of a different sequence of the duplicated frames.

[0096] 14. The system of claim 13, wherein the playback speed for each portion of the identified interval of video content is stored in a look-up table.

[0097] 15. The system of claim 14, wherein the identified interval of video content is played on the electronic display according to playback information indicated in the look-up table.

[0098] 16. The system of claim 15, wherein the look-up table includes one or more delta values ​​that are applied while the identified time interval of video content is being presented on the electronic display to adjust a presentation timestamp of each frame within the identified time interval of video content.

[0099] 17. The system of claim 13, further comprising testing the presentation of the identified time interval of video content on the electronic display to verify one or more specified quality metrics related to the playback of the video content.

[0100] 18. The system of claim 12, wherein the frame rate of the video content is 24 frames per second and the refresh rate of the electronic display is 50 Hz.

[0101] 19. The system of claim 12, wherein the frame rate of the video content is 24 frames per second and the refresh rate of the electronic display is 60 Hz.

[0102] 20. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to access a portion of video content encoded at a particular frame rate; determine a refresh rate of an electronic display on which the video content is displayed; identify a time interval of the video content to which frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display; and present the identified time interval of the video content to the electronic display, the presenting comprising: adjusting a playback speed of a first portion of the identified interval of video content such that the first portion of the identified interval is played using a first sequence of original video frames and duplicated frames; and adjusting a playback speed of a second portion of a subsequent portion of the identified interval of video content such that the second portion of the identified interval is played using the original video frames and a second sequence of a different sequence of the duplicated frames.

[0103] As detailed above, the computing devices and systems described and / or illustrated herein broadly represent any type or form of computing device or system capable of executing computer-readable instructions, such as those contained within the modules described herein. In their most basic configurations, these computing devices each include at least one memory device and at least one physical processor.

[0104] In some examples, the term "memory device" generally refers to any type or form of volatile or non-volatile storage device or medium capable of storing data and / or computer-readable instructions. In one example, a memory device may store, carry, and / or retain one or more of the modules described herein. Examples of memory devices include, but are not limited to, random access memory (RAM), read-only memory (ROM), flash memory, hard disk drive (HDD), solid-state drive (SSD), optical disk drive, cache, one or more variations or combinations thereof, and / or other suitable memory devices or systems.

[0105] In some examples, the term "physical processor" generally refers to any type or form of hardware-implemented processing unit capable of interpreting and / or executing computer-readable instructions. In one example, a physical processor may be capable of accessing and / or modifying one or more modules stored in the memory device described above. Examples of physical processors include, but are not limited to, a microprocessor, a microcontroller, a central processing unit (CPU), a field programmable gate array (FPGA) implementing a soft-core processor, an application specific integrated circuit (ASIC), one or more portions thereof, one or more variations or combinations thereof, and / or other suitable physical processors.

[0106] Although shown as separate elements, the modules described and / or illustrated herein may represent portions of a single module or application. Moreover, in particular embodiments, one or more of these modules may represent one or more software applications or programs that, when executed by a computing device, cause the computing device to perform one or more tasks. For example, one or more of the modules described and / or illustrated herein may represent modules stored and configured to execute on one or more of the computing devices or systems described and / or illustrated herein. One or more of these modules may represent all or part of one or more special-purpose computers configured to perform one or more tasks.

[0107] Further, one or more of the modules described herein may convert data, a physical device, and / or a presentation of a physical device from one form to another. For example, one or more of the modules detailed herein may receive data to be converted, convert the data, output a result of the conversion to determine how video content is presented, use the result of the conversion to present the video content, and save the result of the conversion to indicate how the video content was presented. Additionally or alternatively, one or more of the modules detailed herein may execute on a computing device, store data on the computing device, and / or interact with the computing device to convert a processor, volatile memory, non-volatile memory, and / or other portions of a physical computing device from one form to another.

[0108] In some embodiments, the term "computer-readable medium" generally refers to any form of device, carrier, or medium capable of storing or carrying computer-readable instructions. Examples of computer-readable media include, but are not limited to, transmissive media such as carrier waves, and magnetic storage media (e.g., hard disk drives, tape drives, and floppy disks), optical storage media (e.g., compact discs (CDs), digital video discs (DVDs), and Blu-ray discs), electronic storage media (e.g., solid-state drives and flash media), and other distribution systems.

[0109] The process parameters and sequences of steps described and / or illustrated herein are given by way of example only and can be modified as desired. For example, although the steps illustrated and / or described herein are shown or described in a particular order, these steps do not necessarily have to be performed in the order illustrated or described. The various preferred methods described and / or illustrated herein can also omit one or more of the steps described or illustrated herein or can include additional steps in addition to those disclosed.

[0110] The foregoing description is provided to enable those skilled in the art to best utilize the various aspects of the preferred embodiment disclosed herein. This preferred description is not intended to be exhaustive or to be limited to the precise form disclosed. Many modifications and variations are possible without departing from the spirit and scope of the present disclosure. The embodiments disclosed herein should be considered in all respects as illustrative and not restrictive. In determining the scope of the present disclosure, reference should be made to the appended claims and their equivalents.

[0111] Unless otherwise noted, the terms "connected" and "coupled" (and their derivatives) as used herein should be interpreted as allowing for both direct and indirect (i.e., via other elements or structures) connections. Additionally, the terms "a" or "an" as used herein should be interpreted as meaning "at least one." And, for ease of use, the terms "including" and "having" (and their derivatives) as used herein can be interchanged with the word "comprising" and have the same meaning. Preferred embodiments of the present invention will be described below in detail. EMBODIMENT 1 Accessing a portion of video content encoded at a particular frame rate; determining a refresh rate for an electronic display on which said video content is to be displayed; identifying a time interval of the video content over which a frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display; 13. A computer-implemented method for presenting the identified time interval of video content on the electronic display, the presenting comprising: adjusting a playback speed of a first portion of the identified interval of video content such that the first portion of the identified interval is played using original video frames and a first sequence of duplicated frames; A computer-implemented method comprising: adjusting a playback speed of a second portion of the video content that follows the identified interval such that the second portion of the identified interval is played using the original video frames and a second sequence that is a different sequence of the duplicated frames. EMBODIMENT 2 2. The computer-implemented method of embodiment 1, wherein the second sequence of different sequences of duplicated frames includes at least a minimum threshold number of duplicated frames. EMBODIMENT 3 2. The computer-implemented method of embodiment 1, wherein adjusting the playback speed of the first portion of the identified interval of video content includes increasing the playback speed of the first portion of the identified interval of video content. EMBODIMENT 4 2. The computer-implemented method of embodiment 1, wherein adjusting the playback speed of the second portion of the identified interval of video content includes slowing down the playback speed of the second portion of the identified interval of video content. EMBODIMENT 5 2. The computer-implemented method of embodiment 1, wherein the playback speed is adjusted within a specified maximum or slowest playback speed. EMBODIMENT 6 2. The computer-implemented method of embodiment 1, wherein adjusting the playback speed includes modifying a presentation timestamp associated with the video content. EMBODIMENT 7 2. The computer-implemented method of embodiment 1, wherein the specified time interval is greater than 1 second. EMBODIMENT 8 2. The computer-implemented method of embodiment 1, wherein the specified time interval is at least 3 seconds. EMBODIMENT 9 2. The computer-implemented method of embodiment 1, wherein the playback speed is adjusted based on the type of video frame being presented. EMBODIMENT 10 10. A computer-implemented method as recited in embodiment 9, wherein an interval of the video content that includes one or more primary duplicate frames is automatically played at a specified play speed. EMBODIMENT 11 10. A computer-implemented method as described in embodiment 9, wherein an interval of the video content that includes one or more secondary duplicate frames is automatically played at a specified play speed. EMBODIMENT 12 2. The computer-implemented method of embodiment 1, wherein the plurality of replicated frames are repeated at a specified interval. EMBODIMENT 13 At least one physical processor; and a physical memory containing computer-executable instructions that, when executed by the physical processor, cause the physical processor to: Accessing a portion of video content encoded at a particular frame rate; determining a refresh rate for an electronic display on which said video content is displayed; Identifying a time interval of the video content over which frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display; and presenting the identified time interval of video content on the electronic display, the presenting comprising: adjusting a playback speed of a first portion of the identified interval of video content such that the first portion of the identified interval is played using original video frames and a first sequence of duplicated frames; The system adjusts a playback speed of a second portion of the video content that follows the identified interval, such that the second portion of the identified interval is played using the original video frames and a second sequence that is a different sequence of the duplicated frames. EMBODIMENT 14 14. The system of embodiment 13, wherein the playback speed of each portion of the identified interval of video content is stored in a look-up table. EMBODIMENT 15 15. The system of embodiment 14, wherein the identified interval of video content is played on the electronic display according to playback information indicated in the look-up table. EMBODIMENT 16 16. The system of claim 15, wherein the look-up table includes one or more delta values ​​that are applied while the identified time interval of video content is being presented on the electronic display to adjust the presentation timestamp of each frame within the identified time interval of video content. EMBODIMENT 17 14. The system of embodiment 13, further comprising testing the presentation of the identified time interval of video content on the electronic display to verify one or more specific quality metrics related to the playback of the video content. EMBODIMENT 18 14. The system of embodiment 13, wherein the frame rate of the video content is 24 frames per second and the refresh rate of the electronic display is 50 Hz. EMBODIMENT 19 14. The system of embodiment 13, wherein the frame rate of the video content is 24 frames per second and the refresh rate of the electronic display is 60 Hz. EMBODIMENT 20 A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to: Accessing a portion of video content encoded at a particular frame rate; determining a refresh rate for an electronic display on which said video content is displayed; Identifying a time interval of the video content over which a frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display; and presenting the identified time interval of video content on the electronic display, the presenting comprising: adjusting a playback speed of a first portion of the identified interval of video content such that the first portion of the identified interval is played using original video frames and a first sequence of duplicated frames; A non-transitory computer-readable medium that adjusts a playback speed of a second portion of the video content that follows the identified interval such that the second portion of the identified interval is played using the original video frames and a second sequence that is a different sequence of the duplicated frames.

Claims

1. Accessing a portion of video content encoded at a particular frame rate; determining a refresh rate for an electronic display on which said video content is to be displayed; identifying a time interval of the video content over which a frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display; 13. A computer-implemented method for presenting the identified time interval of video content on the electronic display, the presenting comprising: adjusting a playback speed of a first portion of the identified interval of video content such that the first portion of the identified interval is played using original video frames and a first sequence of duplicated frames; 1. A computer-implemented method for playing a video content having a different sequence of duplicated frames from the original video frames, the different sequence comprising: adjusting a playback speed of a second portion of the video content subsequent to the identified interval such that the second portion of the identified interval is played using the original video frames and a second sequence of duplicated frames; A computer-implemented method, wherein the second sequence includes one or more replicated frames having longer slices than the replicated frames of the first sequence.

2. The computer-implemented method of claim 1 , wherein the second sequence of different sequences of duplicate frames includes at least a minimum threshold number of duplicate frames.

3. 2. The computer-implemented method of claim 1, wherein adjusting the playback speed of the first portion of the identified interval of video content comprises increasing the playback speed of the first portion of the identified interval of video content.

4. 2. The computer-implemented method of claim 1, wherein adjusting the playback speed of the second portion of the identified interval of video content comprises slowing down the playback speed of the second portion of the identified interval of video content.

5. The computer-implemented method of claim 1 , wherein the playback speed is adjusted within a specified maximum or slowest playback speed range.

6. The computer-implemented method of claim 1 , wherein adjusting the playback speed comprises altering a presentation timestamp associated with the video content.

7. The computer-implemented method of claim 1 , wherein the specified time interval is greater than one second.

8. The computer-implemented method of claim 1 , wherein the specified time interval is at least 3 seconds.

9. The computer-implemented method of claim 1 , wherein the playback speed is adjusted based on the type of video frame being presented.

10. 10. The computer-implemented method of claim 9, wherein an interval of the video content that includes one or more primary duplicate frames is automatically played at a specified play speed.

11. 10. The computer-implemented method of claim 9, wherein an interval of the video content that includes one or more secondary duplicate frames is automatically played at a specified play speed.

12. The computer-implemented method of claim 1 , wherein a plurality of said replicated frames are repeated at said specified intervals.

13. at least one physical processor; and a physical memory containing computer-executable instructions that, when executed by the physical processor, cause the physical processor to: Accessing a portion of video content encoded at a particular frame rate; determining a refresh rate for an electronic display on which said video content is displayed; Identifying a time interval of the video content over which a frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display; and presenting the identified time interval of video content on the electronic display, the presenting comprising: adjusting a playback speed of a first portion of the identified interval of video content such that the first portion of the identified interval is played using original video frames and a first sequence of duplicated frames; 1. A system for playing a video content comprising: a video content playback device configured to play a video content of a second portion of the identified interval using a different sequence of the original video frames and the duplicated frames; and a second sequence of the original video frames using a different sequence of the duplicated frames. The second sequence includes one or more replicated frames having a longer slice than the replicated frames of the first sequence.

14. The system of claim 13 , wherein the playback speed of each portion of the identified interval of video content is stored in a look-up table.

15. 15. The system of claim 14, wherein the identified interval of video content is played on the electronic display according to playback information indicated in the look-up table.

16. 14. The system of claim 13, further comprising testing the presentation of the identified time interval of video content on the electronic display to verify one or more particular quality metrics related to the playback of the video content.

17. 14. The system of claim 13, wherein the frame rate of the video content is 24 frames per second and the refresh rate of the electronic display is 50 Hz.

18. 14. The system of claim 13, wherein the frame rate of the video content is 24 frames per second and the refresh rate of the electronic display is 60 Hz.

19. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to: Accessing a portion of video content encoded at a particular frame rate; determining a refresh rate for an electronic display on which said video content is displayed; Identifying a time interval of the video content over which a frame rate conversion is applied to synchronize the frame rate of the video content with the refresh rate of the electronic display; and presenting the identified time interval of video content on the electronic display, the presenting comprising: adjusting a playback speed of a first portion of the identified interval of video content such that the first portion of the identified interval is played using original video frames and a first sequence of duplicated frames; 11. A non-transitory computer-readable medium comprising computer-executable instructions for adjusting a playback speed of a second portion of the video content subsequent to the identified interval such that the second portion of the identified interval is played using the original video frames and a second sequence of the duplicated frames, the second sequence comprising: The second sequence includes one or more replicated frames having a longer slice than the replicated frames of the first sequence.

Citation Information

Patent Citations

  • Reproducing apparatus and reproducing method

    JP2009201100A

  • Communication technology that enables synchronization of received streams transmitted to other devices.

    JP2010541354A

  • Content reproduction device

    JP2014103442A