US2023269368A1PendingUtilityA1

Supporting multiple partition sizes using a unified pixel input data interface for fetching reference pixels in video encoders

Assignee: META PLATFORMS INCPriority: May 17, 2021Filed: Feb 6, 2023Published: Aug 24, 2023
Est. expiryMay 17, 2041(~14.8 yrs left)· nominal 20-yr term from priority
H04N 19/105H04N 19/119H04N 19/132H04N 19/176H04N 19/433H04N 19/523H04N 19/55H04N 19/563H04N 19/61
53
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A system for storing and providing video pixel data for video encoding is disclosed. The system comprises a memory storage and a cache storage. The system further comprises a controller. The controller is configured to receive a request that causes transferring of a reference pixel block of a video, wherein the video is being encoded using the reference pixel block. The controller is configured to determine whether the reference pixel block has at least a portion that is outside a frame of the video. In response to the determination of the reference pixel block having at least a portion outside the frame of the video, the controller is configured to cause a portion of the reference pixel block of the video inside the frame of the video to be fetched from a memory storage and stored in a cache storage, pad a remaining missing portion of the reference pixel block of the video outside the frame of the video with padding pixel data to form the reference pixel block, and transfer the reference pixel block in response to the request.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A system, comprising:
 a memory storage;   a cache storage;   a controller configured to:
 receive a request that causes transferring of a reference pixel block of a video, wherein the video is being encoded using the system; 
 determine whether the reference pixel block has at least a portion that is outside a frame of the video; and 
 in response to the determination of the reference pixel block having at least the portion that is outside the frame of the video:
 cause a portion of the reference pixel block of the video inside the frame of the video to be fetched from the memory storage and stored in the cache storage; 
 pad a remaining missing portion of the reference pixel block of the video outside the frame of the video with padding pixel data to form the reference pixel block; and 
 transfer the reference pixel block in response to the request, wherein the transferring of the reference pixel block is divided into a plurality of transfer blocks, wherein each transfer block comprises a width and a height, and wherein the width is a predetermined block unit pixel width plus additional pixels for interpolation, and wherein in the event a prediction unit has a width that is a multiple of the predetermined block unit pixel width, the prediction unit is divided horizontally into a plurality of block units, wherein each block unit has the predetermined block unit pixel width, and wherein each block unit corresponds to one of the transfer blocks, and wherein each line of a transfer block includes the pixels in a corresponding line of the corresponding block unit and the additional pixels for interpolation. 
 
   
     
     
         2 . The system of  claim 1 , wherein values of the padding pixel data are determined based on positions of the remaining missing portion relative to the portion of the reference pixel block of the video inside the frame of the video. 
     
     
         3 . The system of  claim 2 , wherein a value of the padding pixel data at a particular pixel location is based on a pixel value of a closest pixel within the portion of the reference pixel block of the video inside the frame of the video. 
     
     
         4 . The system of  claim 3 , wherein a pixel location that is above the frame of the video is padded with a value of a pixel that is in the portion of the reference pixel block of the video inside the frame of the video and directly below the pixel location and on a first line of the portion of the reference pixel block of the video inside the frame of the video. 
     
     
         5 . The system of  claim 3 , wherein a pixel location that is to the right of the frame of the video is padded with a value of a pixel that is in the portion of the reference pixel block of the video inside the frame of the video and is a last right-most pixel on a same horizontal line. 
     
     
         6 . The system of  claim 3 , wherein a pixel location that is below the frame of the video is padded with a value of a pixel that is in the portion of the reference pixel block of the video inside the frame of the video and directly above the pixel location and on a last line of the portion of the reference pixel block of the video inside the frame of the video. 
     
     
         7 . The system of  claim 3 , wherein a pixel location that is to the left of the frame of the video is padded with a value of a pixel that is in the portion of the reference pixel block of the video inside the frame of the video and is a first left-most pixel on a same horizontal line. 
     
     
         8 . The system of  claim 1 , wherein in the event a prediction unit has a width that is a multiple of the predetermined block unit pixel width and a height that is a multiple of a transform unit height, the prediction unit is divided horizontally and vertically into a plurality of block units, and wherein each block unit has the predetermined block unit pixel width and having the transform unit height, and wherein each block unit corresponds to one of the transfer blocks, and wherein each line of a transfer block includes the pixels in a corresponding line of the corresponding block unit and the additional pixels for interpolation, and wherein each column of the transfer block includes a number of pixels of the corresponding block unit and additional pixels for interpolation, wherein the number of pixels equals the transform unit height. 
     
     
         9 . A method, comprising:
 receiving by a controller a request that causes transferring of a reference pixel block of a video;   determining by the controller whether the reference pixel block has at least a portion that is outside a frame of the video; and   in response to the determination of the reference pixel block having at least the portion that is outside the frame of the video:
 causing by the controller a portion of the reference pixel block of the video inside the frame of the video to be fetched from a memory storage and stored in a cache storage; 
 padding by the controller a remaining missing portion of the reference pixel block of the video outside the frame of the video with padding pixel data to form the reference pixel block; and 
 transferring by the controller the reference pixel block in response to the request, wherein the transferring of the reference pixel block is divided into a plurality of transfer blocks, wherein each transfer block comprises a width and a height, and wherein the width is a predetermined block unit pixel width plus additional pixels for interpolation, and wherein in the event a prediction unit has a width that is a multiple of the predetermined block unit pixel width, the prediction unit is divided horizontally into a plurality of block units, wherein each block unit has the predetermined block unit pixel width, and wherein each block unit corresponds to one of the transfer blocks, and wherein each line of a transfer block includes the pixels in a corresponding line of the corresponding block unit and the additional pixels for interpolation. 
   
     
     
         10 . The method of  claim 9 , wherein values of the padding pixel data are determined based on positions of the remaining missing portion relative to the portion of the reference pixel block of the video inside the frame of the video. 
     
     
         11 . The method of  claim 10 , wherein a value of the padding pixel data at a particular pixel location is based on a pixel value of a closest pixel within the portion of the reference pixel block of the video inside the frame of the video. 
     
     
         12 . The method of  claim 11 , wherein a pixel location that is above the frame of the video is padded with a value of a pixel that is in the portion of the reference pixel block of the video inside the frame of the video and directly below the pixel location and on a first line of the portion of the reference pixel block of the video inside the frame of the video. 
     
     
         13 . The method of  claim 11 , wherein a pixel location that is to the right of the frame of the video is padded with a value of a pixel that is in the portion of the reference pixel block of the video inside the frame of the video and is a last right-most pixel on a same horizontal line. 
     
     
         14 . The method of  claim 11 , wherein a pixel location that is below the frame of the video is padded with a value of a pixel that is in the portion of the reference pixel block of the video inside the frame of the video and directly above the pixel location and on a last line of the portion of the reference pixel block of the video inside the frame of the video. 
     
     
         15 . The method of  claim 11 , wherein a pixel location that is to the left of the frame of the video is padded with a value of a pixel that is in the portion of the reference pixel block of the video inside the frame of the video and is a first left-most pixel on a same horizontal line. 
     
     
         16 . A system, comprising:
 a controller with a processor configured to:
 receive a request that causes transferring of a reference pixel block of a video, wherein the video is being encoded using the system; 
 determine whether the reference pixel block has at least a portion that is outside a frame of the video; and 
 in response to the determination of the reference pixel block having at least the portion that is outside the frame of the video: 
 cause a portion of the reference pixel block of the video inside the frame of the video to be fetched from memory storage and stored in cache storage; 
 pad a remaining missing portion of the reference pixel block of the video outside the frame of the video with padding pixel data to form the reference pixel block; and 
 transfer the reference pixel block in response to the request, wherein the transferring of the reference pixel block is divided into a plurality of transfer blocks, wherein each transfer block comprises a width and a height, and wherein the width is a predetermined block unit pixel width plus additional pixels for interpolation, and wherein in the event a prediction unit has a width that is a multiple of the predetermined block unit pixel width, the prediction unit is divided horizontally into a plurality of block units, wherein each block unit has the predetermined block unit pixel width, and wherein each block unit corresponds to one of the transfer blocks, and wherein each line of a transfer block includes the pixels in a corresponding line of the corresponding block unit and the additional pixels for interpolation; and 
   a memory coupled to the processor and configured to provide the processor with instructions.   
     
     
         17 . The system of  claim 16 , wherein values of the padding pixel data are determined based on positions of the remaining missing portion relative to the portion of the reference pixel block of the video inside the frame of the video. 
     
     
         18 . The system of  claim 17 , wherein a value of the padding pixel data at a particular pixel location is based on a pixel value of a closest pixel within the portion of the reference pixel block of the video inside the frame of the video. 
     
     
         19 . The system of  claim 18 , wherein a pixel location that is above the frame of the video is padded with a value of a pixel that is in the portion of the reference pixel block of the video inside the frame of the video and directly below the pixel location and on a first line of the portion of the reference pixel block of the video inside the frame of the video. 
     
     
         20 . The system of  claim 18 , wherein a pixel location that is to the right of the frame of the video is padded with a value of a pixel that is in the portion of the reference pixel block of the video inside the frame of the video and is a last right-most pixel on a same horizontal line.

Join the waitlist — get patent alerts

Track US2023269368A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.