Method of video encoding and decoding

The Flexible Picture Transform system addresses the limitations of fixed processing order in video codecs by applying perspective transformations and adaptive frame management, improving coding efficiency and reducing complexity.

WO2026152406A1PCT designated stage Publication Date: 2026-07-23SHENZHEN TCL NEW-TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
SHENZHEN TCL NEW-TECH CO LTD
Filing Date
2025-01-17
Publication Date
2026-07-23

AI Technical Summary

Technical Problem

The rigid left-to-right, top-to-bottom processing order of current video codecs limits coding efficiency by constraining prediction mechanisms, preventing the utilization of better prediction references outside the processed regions and increasing computational complexity.

Method used

Implementing a Flexible Picture Transform (FPT) system that applies perspective transformations to video frames, managing reference frames and metadata adaptively at the decoder side to reduce computational overhead and signaling overhead, while maintaining efficient inter-frame prediction.

Benefits of technology

Enhances video coding efficiency by leveraging frame similarities and reducing computational complexity, while maintaining compatibility with existing standards.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025073141_23072026_PF_FP_ABST
    Figure CN2025073141_23072026_PF_FP_ABST
Patent Text Reader

Abstract

This disclosure presents a method of video encoding and decoding for image and video processing. A decoder receives a bitstream from encoder side and decodes the bitstream to generate a decoded frame. The decoder determines a perspective transformation for the decoded frame and performs an inverse perspective transformation to the decoded frame to generate an inverse transformed frame.
Need to check novelty before this filing date? Find Prior Art

Description

METHOD OF VIDEO ENCODING AND DECODINGBACKGROUND OF DISCLOSURE1. Field of Disclosure

[0001] The present disclosure relates to the field of image processing, and more particularly, to a method of video encoding and decoding.2. Description of Related Art

[0002] Modern video coding systems process frames in a fixed left-to-right, row-by-row order to ensure that both encoder and decoder can properly access reference data for prediction. This fixed processing order constrains prediction tools like intra-prediction and motion compensation, which can only use reconstructed pixels from the left and upper regions as references. For example, intra-prediction can only use pixels from blocks above or to the left of the current block, while motion vector prediction and block copy modes are similarly restricted to referencing already processed areas. While this fixed order enables synchronized encoder-decoder operation, it fails to optimally handle content where stronger correlations exist with pixels in other directions, such as when dominant edges run diagonally or when motion patterns favor prediction from not-yet-processed regions.Technical Problem

[0003] The rigid left-to-right, top-to-bottom processing order of current video codecs creates several technical challenges that limit coding efficiency. First, when strong correlations exist between a block and pixels to its right or bottom, these potentially better prediction references cannot be utilized since those regions have not yet been processed.

[0004] Modern video codecs process video data in a left-to-right, row-by-row scanning order. Due to the fundamental requirement that decoders can only access previously decoded data, this scanning order imposes specific constraints on prediction mechanisms. For content with diagonal edges or patterns, the fixed scan order results in sub-optimal intra-prediction as it cannot properly leverage the natural directional correlations in the image.

[0005] The scanning order particularly affects intra-prediction, which can only use reconstructed pixels from left and above neighborhoods. When using Intra Block Copy (IBC) , the codec can only reference reconstructed data from above coding tree unit (CTU) rows and the left portion of the current CTU row. Motion vector prediction in inter-prediction is similarly restricted to previously processed regions. The motion compensation is constrained in using motion information only from previously coded areas, which may not contain the best matching reference regions.

[0006] This fixed processing order creates inherent limitations in prediction efficiency. For intra-prediction, local image correlations sometimes indicate that bottom or right neighborhoods would provide better prediction references. Similarly for inter-prediction, motion field correlations (including motion vectors and reference pictures / reconstructed frames) may be stronger in currently inaccessible regions, limiting the codec's ability to exploit these relationships for improved compression efficiency.

[0007] Additionally, while some prior solutions significantly increase computational complexity through additional rate-distortion optimization cycles. There is therefore a need for a solution that can overcome these limitations of the fixed processing order while maintaining reasonable computational complexity and enabling efficient inter-frame prediction.

[0008] Hence, an encoding method and a decoding method for addressing the challenge are desirable.SUMMARY

[0009] An object of the present disclosure is to propose a method of video encoding and decoding.

[0010] In a first aspect, an embodiment of the disclosure provides a method of video decoding, comprising: receiving a bitstream from encoder side;decoding the bitstream to generate a decoded frame;determining a perspective transformation for the decoded frame; andperform an inverse perspective transformation to the decoded frame to generate an inverse transformed frame.

[0011] In a second aspect, an embodiment of the disclosure provides a decoding device comprising a processor configured to call and run a computer program stored in a memory, to cause a device in which the processor is installed to execute the disclosed method.

[0012] In a third aspect, an embodiment of the disclosure provides a method of video encoding comprising: receiving a video signal comprising a frame;determining a perspective transformation for the frame;perform the determined perspective transformation to the frame to generate a forward transformed frame;encoding the forward transformed frame to generate a coded frame; andtransmitting a bitstream comprising the coded frame to a decoder side.

[0013] In a fourth aspect, an embodiment of the disclosure provides an encoding device comprising a processor configured to call and run a computer program stored in a memory, to cause a device in which the processor is installed to execute the disclosed method.

[0014] In a sixth aspect, an embodiment of the disclosure provides a decoding device comprising a processor configured to call and run a computer program stored in a memory, to cause a device in which the chip is installed to execute the disclosed method and any combination of embodiments of the disclosed method.

[0015] The disclosed method may be programmed as computer executable instructions stored in non-transitory computer readable medium. The non-transitory computer readable medium, when loaded to a computer, directs a processor of the computer to execute the disclosed method.

[0016] The non-transitory computer readable medium may comprise at least one from a group consisting of: a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a Read Only Memory, a Programmable Read Only Memory, an Erasable Programmable Read Only Memory, EPROM, an Electrically Erasable Programmable Read Only Memory and a Flash memory.

[0017] The disclosed method may be programmed as a computer program product that causes a computer to execute the disclosed method.

[0018] The disclosed method may be programmed as a computer program that causes a computer to execute the disclosed method.BRIEF DESCRIPTION OF DRAWINGS

[0019] In order to more clearly illustrate the embodiments of the present disclosure or related art, the following figures will be described in the embodiments are briefly introduced. It is obvious that the drawings are merely some embodiments of the present disclosure, a person having ordinary skill in this field may obtain other figures according to these figures without paying the premise.

[0020] FIG. 1 illustrates a schematic view of an encoding system.

[0021] FIG. 2 illustrates a schematic view of a decoding system.

[0022] FIG. 3 illustrates a schematic view of an example of a communication system.

[0023] FIG. 4 illustrates a schematic view of another example of a communication system.

[0024] FIG. 5 illustrates a schematic view showing an embodiment of an encoding method in the disclosure.

[0025] FIG. 6 illustrates a schematic view showing an embodiment of a decoding method in the disclosure.

[0026] FIG. 7 illustrates a schematic view showing a process of applying frame-based transformation within the Flexible Picture Transform (FPT) framework.

[0027] FIG. 8 illustrates a schematic view showing a process of applying GOP-based transformation within the Flexible Picture Transform (FPT) framework.

[0028] FIG. 9 illustrates a schematic view showing a video encoder with FPT block.

[0029] FIG. 10 illustrates a schematic view showing a video decoder with FPT block.

[0030] FIG. 11 illustrates a schematic view showing a filter mask detecting 45-degree edges and the result of the filtering.

[0031] FIG. 12 illustrates a schematic view showing a filter detecting 135-degree edges and the result of the filtering.

[0032] FIG. 13 illustrates a schematic view showing a visual representation of sum of the filtration.

[0033] FIG. 14 illustrates a schematic view showing a full decision tree.

[0034] FIG. 15 illustrates a schematic view showing an embodiment of the disclosed method.

[0035] FIG. 16 illustrates a schematic view showing a full decision tree.

[0036] FIG. 17 illustrates a schematic view showing a chip or executing the disclosed method in an encoder.

[0037] FIG. 18 illustrates a schematic view showing a chip or executing the disclosed method in a decoder.DETAILED DESCRIPTION OF EMBODIMENTS

[0038] Embodiments of the disclosure are described in detail with the technical matters, structural features, achieved objects, and effects with reference to the accompanying drawings as follows. Specifically, the terminologies in the embodiments of the present disclosure are merely for describing the purpose of the certain embodiment, but not to limit the disclosure.

[0039] The invention relates to video coding techniques that improve coding efficiency by applying geometric transformations to input images or video frames. The invention discloses a decoder-side method for interpreting and processing transformation metadata to correctly reconstruct transformed content. Additionally, at least one embodiment of the invention discloses a comprehensive strategy for managing transformed reference pictures / reconstructed frames and the associated motion information within the decoder's picture / image buffer. Furthermore, at least one embodiment of the invention discloses an automatic method for selecting optimal image transformations, implemented on both encoder and decoder sides.

[0040] The existing approaches to image transformation in video coding face several significant challenges. Rate-distortion (RD) optimization cycles pose a major computational burden. When performed as part of RD optimization, the process of selecting the optimal mirroring variant for each encoded block adds considerable complexity to the encoder. While coding efficiency is crucial, computational complexity is equally important. For example, the "Geometry Transform of Intra-frames in ECM" solution demonstrates significant coding gains but increases computation time by seven percent, making it impractical for real-world applications.

[0041] Signaling overhead presents another critical challenge. The need to transmit additional transformation information from encoder to decoder increases bitstream size, negatively impacting coding efficiency. Some existing solutions attempt to address this through supplemental enhancement information (SEI) messages, but this approach has serious limitations. Since not all decoders are required to be SEI-compliant, the decoders may ignore these messages entirely. This creates potential problems when an encoder applies rotations to only certain frames, as non-compliant decoders would produce video with inconsistent frame orientations. Furthermore, this inconsistency complicates inter-frame prediction, as motion estimation may not properly account for SEI-specified transformations.

[0042] Our proposed invention addresses these challenges through a novel approach: implementing adaptive selection of image transformations at the decoder side. This method significantly reduces the need for explicit signaling, minimizing bitstream overhead while maintaining consistent frame transformations across all compliant decoders.

[0043] Existing solutions are constrained by a limited set of picture transformations / frame transformations. While these basic transforms are useful, additional transformation types could potentially improve encoding efficiency, particularly by enhancing similarity between neighboring frames and thereby improving inter-prediction performance. However, implementing a broader range of transforms presents a challenge: the signaling requirements for more complex transforms can be less efficient, potentially offsetting any bitrate savings gained from their use.

[0044] A significant challenge also exists in handling inter-prediction effectively for transformed frames. Current methods lack a comprehensive approach to this problem. When different perspective transforms are applied to reference frames versus currently encoded frames, motion vector search becomes substantially more complex. This complexity arises because areas that were co-located in the original frames may be positioned differently after transformation. To address this, encoders must either expand their search areas or recalculate original block positions –both approaches significantly increasing the computational burden of the encoding process.

[0045] The invention addresses the transform diversity limitation by implementing a full perspective transformation framework. In one or more embodiments of the disclosure, a solution uses a 3x3 transformation matrix that enables a complete range of perspective transformations beyond simple rotation and mirroring. This broader transform capability allows the codec to better exploit frame similarities, particularly for inter-prediction, while maintaining efficient signaling through adaptive transform selection at the decoder side.For the inter-prediction complexity challenge, in one or more embodiments of the disclosure, an approach introduces an efficient reference picture / frame management strategy. When different transforms are used between frames, the system can either keep reference pictures / reconstructed frames in their original non-transformed state or align them with a target transform (typically the transform of the first GOP picture / frame) . In one or more embodiments of the disclosure, the solution may efficiently combine transforms through matrix multiplication before applying them to reference pictures / reconstructed frames. This approach eliminates the need for expanded motion vector search areas or complex block position recalculations, significantly reducing computational complexity while maintaining effective inter-prediction.

[0046] For example, when using GOP-based transformation, frames within the same GOP can share a common transform, further minimizing the computational overhead of reference picture / reconstructed frames management while maintaining the benefits of improved prediction accuracy.

[0047] The proposed Flexible Picture Transform (FPT) system enhances video coding efficiency by applying perspective transformations to complete image frames. At its core is the FPT selector module, which analyzes incoming frames to determine the optimal perspective transformation for each frame.

[0048] The encoding process follows three key steps. First, the selected transform is applied to the input frame. Second, this transformed frame is processed through a standard video encoder. Third, the reconstructed frame can optionally undergo an inverse transformation before storage in the picture buffer. This flexible approach enables efficient motion estimation between frames that may use different perspective transforms.

[0049] When encoding frames with different transforms, the system dynamically manages reference frames. It applies forward transformations to both pixel data and motion vectors from the reconstructed picture buffer to align them with the current frame's perspective. However, this inverse-then-forward transform process can be simplified when a consistent transform is maintained across a group of pictures (GOP) , reducing computational overhead while maintaining coding efficiency.

[0050] This integrated approach enables more efficient video compression while maintaining backwards compatibility with existing video coding standards.

[0051] Encoder processing flow:

[0052] The encoder performs a three-stage process. First, it analyzes the input image to determine the optimal transform by examining edge characteristics through one or more methods: edge detection analysis, directional filtering, or other content-adaptive approaches. Next, it applies the selected transform to the input image. Finally, the transformed image is encoded into a bitstream using standard coding tools.

[0053] Decoder processing flow:

[0054] The decoder employs a complementary three-stage process. It begins by decoding the received bitstream to obtain the compressed image data. Then, it extracts the transform parameters from the bitstream, which can be either explicitly signaled or derived from the decoded data. Finally, it applies the inverse transform using these parameters to reconstruct the original image orientation.

[0055] To facilitate understanding of the technical solutions presented in this application’s embodiments, a concise overview of the video encoding and decoding system will be given in the following.

[0056] As shown in FIG. 1, a video encoding system 110 is composed of multiple modules, including a block partitioning unit 1101, transform and quantization unit 1102, intra-frame estimation unit 1103, intra-frame prediction unit 1104, motion compensation unit 1105, motion estimation unit 1106, an inverse transformation and inverse quantization unit 1107, a filter control analysis unit 1108, a filtering unit 1109, an encoding unit 1110, an encoded image buffer unit 1111, and a subtractor 1112. The video encoding system 110 may be implemented as an encoder, an encoding device, a computer program, a system on chip (SIC) , an integrated circuit (IC) , or a chip. The intra-frame prediction unit 1104 may be implemented as a computer program, a system on chip (SIC) , an integrated circuit (IC) , or a chip.

[0057] Original video signals comprise video frames. Each video frame can be divided into blocks by the block partitioning unit 1101. For each of the video frames, the subtractor 1112 generates residual pixel information of a residual frame by subtracting the video frame by prediction blocks output by the intra-frame prediction unit 1104 or the motion compensation unit 1105. The residual pixel information obtained after intra-frame prediction or inter-frame prediction (motion compensation) , is transformed by the transformation and quantization unit 1102. The transformation includes transforming the residual pixel information from the pixel domain to a transform domain to generate resulting transform coefficients, and the resulting transform coefficients are quantized to further reduce the bit rate. The intra-frame estimation unit 1103 performs intra-frame estimation, and the intra-frame prediction unit 1104 performs intra-frame prediction on the video reconstruction blocks. Motion estimation performed by the motion estimation unit 1106 is a process of generating a motion vector that can estimate the motion of the video reconstruction block, and then motion compensation is performed by the motion compensation unit 1105 based on the determined motion vector. After determining an intra-frame prediction mode, the intra-frame prediction unit 1104 provides selected intra-frame predicted data to the encoding unit 1110, and the motion estimation unit 1106 also sends calculated motion vector data to the encoding unit 1110. The inverse transform and inverse quantization unit 1107 reconstructs the video reconstruction blocks and reconstructs a residual block in the pixel domain, and the filtering unit 1109 is controlled by the filter analysis unit 1108 to remove the blocking artifacts in the reconstructed residual block, and the encoding unit 1110 adds the reconstructed residual block to the prediction block of the encoded image buffer unit 1111 to generate a reconstructed block. The encoding unit 1110 is used for encoding various encoding parameters and quantized transform coefficients (quantized transform coefficients) into bitstream, and outputs the bitstream of the video signals. The encoded image buffer unit 1111 is used for storing reconstructed blocks as the reference blocks for intra-frame prediction. As the video image encoding progresses, new reconstructed blocks are continuously generated, and these blocks will be stored in the encoded image buffer unit 1111. The encoded image buffer unit 1111 may comprise reconstructed picture buffer.

[0058] As shown in FIG. 2, the video decoding system 120 is composed of multiple modules comprising a decoding unit 1201, an inverse transform and inverse quantization unit 1202, an intra-frame prediction unit 1203, a motion compensation unit 1204, a filtering unit 1205, a decoded image buffer unit 1206 and a post filtering unit 1207. The video decoding system 120 may be implemented as a decoder, a decoding device, a computer program, a system on chip (SIC) , an integrated circuit (IC) , or a chip. The intra-frame prediction unit 1203 may be implemented as a computer program, a system on chip (SIC) , an integrated circuit (IC) , or a chip. The decoded image buffer unit 1206 may comprise reconstructed picture buffer.

[0059] The input signals of video frames are encoded by the video encoding system 110 to obtain an output bitstream. The video encoding system 110 transmits the bitstream to the video decoding system 120. The video decoding system 120 receives the bitstream representing the video frames in an encoded format (i.e., in a compressed format) . In the video decoding system 120, the bitstream is processed by the decoding unit 1201 to obtain decoded transform coefficients. The inverse transform and inverse quantization unit 1202 process the transform coefficients to generate a residual block in the pixel domain. The intra-frame prediction unit 1203 is operable to generate an intra-frame prediction block for a current video decoding block (i.e., current video block that undergoes video decoding) based on a determined intra-frame prediction mode and data from previously decoded blocks of the current video frame or picture. The motion compensation unit 1204 determines the inter-frame prediction information for the current video decoding block and generates an inter-frame prediction block by parsing the motion vector and other associated syntax elements. Finally, the decoded video block is formed by summing the residual block from the inverse transform and inverse quantization unit 1202 and the corresponding prediction block generated by the intra-frame prediction unit 1203 or the motion compensation unit 1204. In order to improve video quality, the decoded video blocks are filtered through the filtering unit 1205 to remove blocking artifacts. The decoded video block is then stored in the decoded image buffer unit 1206 as the reference block for subsequent intra-prediction or motion compensation, and for video output, i.e., to reproduce and reconstruct the original video signals. The output video can be optionally further processed by a post filtering unit 1207 for more suitable or enhanced viewing experiences.

[0060] The embodiments of the present disclosure are mainly used for the intra-frame prediction unit 1104 of the video encoding system 110 and the intra-frame prediction unit 1203 of the video decoding system 120. Similarly, the embodiments of the present disclosure are mainly used for the inter-frame prediction in the motion compensation unit 1105 and the motion compensation unit 1204. If a better prediction effect can be obtained in the video encoding system 110 through the method of video encoding and decoding provided by the embodiments of the present application, the quality of video decoding and reconstruction can also be improved. The video decoding system 120 receives the bitstream representing the video frames.

[0061] The following are several implementation examples, demonstrating possible executions for this disclosure within video codec standards.

[0062] With reference to FIG. 3, a system including a first image processing device 10a and a second image processing device 10b. The first image processing device 10a may operates as an encoding device comprising a processor 75a. The processor 75a comprises an encoder configured to execute the disclosed encoding method. The encoder encodes image or video frames into bit streams, and the processor 75a transmits the bit steam to the processor 75b. The second image processing device 10b may operates as a decoding device comprising a processor 75b. The processor 75b comprises a decoder configured to execute the disclosed decoding method.

[0063] Similarly, the second image processing device 10b may operate as an encoding device comprising a processor 75b. The processor 75b comprises an encoder configured to execute the disclosed encoding method. The encoder encodes image or video frames into bit streams, and the processor 75b transmits the bit steam to the processor 75a. The first image processing device 10a may operates as a decoding device comprising a processor 75b. The processor 75b comprises a decoder configured to execute the disclosed decoding method.

[0064] In some embodiments of the disclosure, the encoder and the decoder may be implemented into computer readable programs or instructions. A device when executing the programs or instructions performs embodiments of the disclosed method. An example of the electronic device in the description may include one of the device 10a or device 10b. The device 10a may communicate with the device 10b through a direct connection or through a base station and / or a network device entity.

[0065] With reference to FIG. 4, the electronic device 10a may communicate with the electronic device 10b through a wireline or a wireless communication connection. One of the electronic device 10a or electronic device 10b may serve as an image encoder and the other may serve as an image decoder. Each of the electronic device 10a and electronic device 10b may include both an image encoder and an image decoder.

[0066] An image encoder may be implemented as an intra-frame prediction unit, a chip, an electronic device, or a video encoding system. An image decoder may be implemented as an intra-frame prediction unit, a chip, an electronic device, or a video decoding system. The intra-frame prediction unit in an image encoder and / or an image decoder performs method of video encoding and decoding.

[0067] Solutions:

[0068] With reference to FIG. 5, the encoder , such as the video encoding system 110, performs the following step: Step E001: receiving a video signal comprising a frame;Step E002: determining a perspective transformation for the frame;Step E003: perform the determined perspective transformation to the frame to generate a forward transformed frame; Step E004: encoding the forward transformed frame to generate a coded frame; andStep E005: transmitting a bitstream comprising the coded frame to a decoder side.

[0069] In one or more embodiments of the disclosed method of video encoding in FIG. 5, determining the perspective transformation for the frame comprising:deriving the perspective transformation from image content of the frame.

[0070] With reference to FIG. 6, the decoder, such as the video decoding system 120, performs the following step:

[0071] Step A001: receiving a bitstream from encoder side;

[0072] Step A002: decoding the bitstream to generate a decoded frame;

[0073] Step A003: determining a perspective transformation for the decoded frame; and

[0074] Step A004: perform an inverse perspective transformation to the decoded frame to generate an inverse transformed frame.

[0075] In one or more embodiments of the disclosed method of video decoding in FIG. 6, determining the perspective transformation for the decoded frame comprises:decoding a flag which indicating a transformation from the bitstream, orderiving the perspective transformation from image content of the decoded frame.

[0076] The Flexible Picture Transform (FPT) system enhances video coding efficiency by applying perspective transforms to video frames. This system introduces four key components to the standard video coding framework:1.Transform Selector (FPT Select) : Analyzes input frame content to determine the optimal perspective transform 2.Forward Transform (Fwd FPT) : Applies the selected transform to input frames using a projection transform matrix3.Inverse Transform (Inv FPT) : Applies inverse transforms to reconstructed frames before buffer storage4.Reference Picture Transform (Ref pic fwd FPT) : Transforms reference frames to match the current frame's transform

[0077] The system handles both pixel data and associated metadata, including motion vectors, which must be transformed to maintain consistency with the transformed picture / frame orientations. When frames use different transforms, the system manages transform alignment through the reconstructed picture buffer: reconstructed frames are inverse-transformed before storage, and reference frames are forward-transformed to match the current frame's transform when read from the reconstructed picture buffer.

[0078] Three implementation approaches are proposed:1.Frame-level Transform Selection: Determines and applies transforms independently for individual frames or groups of frames based on specified conditions.2.GOP-level Transform Selection: Applies a single transform across an entire GOP, typically determined from the GOP's first frame.3.Integrated Codec Framework: A comprehensive implementation that incorporates both frame-level and GOP-level capabilities into the core codec architecture.

[0079] The frame-level and GOP-level approaches can be implemented independently of the full codec framework, allowing flexible integration with existing systems.

[0080] Solution #1: Frame-based Transformation

[0081] With reference to FIG. 7, this solution proposes enhancing video coding efficiency by applying perspective transforms to coded images or videos within the Flexible Picture Transform (FPT) framework. The process comprises the following steps.

[0082] The first step is frame selection, which is optional. During this step, frames are selected for transformation with the goal of balancing computational complexity and effectiveness. This can be implemented in multiple ways -either by transforming every frame in the sequence, or by selectively transforming frames based on explicit bitstream information or specific frame criteria.

[0083] The second step determines the appropriate transformation for the selected frames. This critical step maximizes performance gains by choosing the optimal transformation type. The selection process considers multiple factors including edge analysis results, Rate-Distortion Optimization (RDO) , specific image features obtained through filtering, content analysis, and motion analysis. The transformation can be chosen from either a full transformation set or a subset of available transformations such as rotation or mirroring.

[0084] In the third step, the selected transformation is applied to the input image. This step executes the transformation determined in step two.

[0085] Finally, there is an optional inpainting step. Since the transformed image may contain empty pixels, an inpainting procedure can be applied before encoding.

[0086] Solution #2: GOP-based transformation

[0087] With reference to FIG. 8, the GOP-based transformation approach extends the Flexible Picture Transform (FPT) concept to operate at the GOP level, enhancing video coding efficiency through the systematic application of perspective transforms across groups of pictures / frames.

[0088] The first step involves GOP selection for transformation. This selection process aims to balance computational complexity with coding effectiveness. While one straightforward approach is to transform every GOP uniformly, the solution also supports selective GOP transformation based on specific criteria or rules. These criteria can be derived from explicit GOP information in the bitstream or determined by analyzing GOP characteristics that indicate potential benefits from transformation.

[0089] Once GOPs are selected, the next crucial step is determining the optimal transformation to be applied consistently across all frames within each selected GOP. The transformation can be chosen from either a full transformation set or a more constrained subset of transformations such as basic rotations and mirroring operations. The selection process can incorporate multiple factors including edge analysis results, Rate-Distortion Optimization (RDO) , content-specific filtering, motion analysis, and other image features. The selection process can involve all frames in GOP, a subset of frames in the analyzed GOP or only the first frame in the analyzed GOP.

[0090] After selecting the appropriate transformation, it is systematically applied to each input frame within the GOP.

[0091] As an optional final step, the solution includes an inpainting procedure to handle any empty pixels that may result from the transformation process. This step ensures complete pixel coverage in the transformed frames before they enter the encoding pipeline.

[0092] Through this systematic approach, the GOP-based transformation solution provides a structured way to apply perspective transforms at a broader temporal scale while maintaining consistency within each group of pictures / frames.

[0093] Solution #3: FPT Codec Framework with signaling Support

[0094] The FPT Codec framework implements a comprehensive encoding and decoding system that integrates perspective transforms with traditional video coding, supported by explicit signaling. With reference to FIG. 9, the encoding process comprises several key components:

[0095] The process begins with Transform Selection (FPT select) , where the encoder analyzes each image or video frame to determine the optimal perspective transform. This selection process can operate on either a frame-by-frame or GOP basis, following the methodologies outlined in Solutions #1 and #2.

[0096] Once selected, the transform is applied through Image Transformation (Fwd FPT) . This stage implements the perspective transformation on the input image, potentially creating empty pixels that require inpainting. The transformation methodology follows the approach detailed in Solution #1 and #2, with inpainting procedures described in their respective optional steps.

[0097] The framework includes two optional components for handling reference pictures / reconstructed frames. The first is Inverse Image Transformation (Inv FPT) , which applies inverse transformation to reconstructed frames and their associated metadata before storing them in the reconstructed picture buffer. This step becomes necessary when consecutive frames within a GOP use different transformations.

[0098] The second optional component is Reference Picture Transformation (Ref pic fwd FPT) , which transforms pictures / frames from the reconstructed picture buffer along with their metadata. This process may also require inpainting of empty pixels. Like the inverse transformation, this step is only needed when consecutive frames in a GOP use different transformations.

[0099] Finally, the framework incorporates a signaling component that communicates the specific transforms applied. This explicit signaling ensures proper synchronization between encoder and decoder operations.

[0100] With reference to FIG. 10, the decoding process in the FPT Codec framework, operates through three main stages to reconstruct the original video content.

[0101] The process begins with signaling, where the decoder receives and interprets information that specifies the applied perspective transforms.

[0102] The second stage involves Inverse Image Transformation (Inv FPT) , which performs two critical functions. First, the decoding process applies inverse transformation to the reconstructed frame and its associated metadata, outputting this data to the reconstructed picture buffer. Second, the decoding process passes the inversely transformed frame directly to the decoder output as the final decoded frame. This transformation stage is conditionally applied, typically when consecutive frames within a GOP have been assigned different transformations.

[0103] While the application of inverse image transformation to frames and metadata before storing them in the reconstructed picture buffer is optional when frames within a GOP have different transformations, inverse transformation is always necessary for generating the final output frames from the decoder. If frames were already inversely transformed before being stored in the reconstructed picture buffer, no additional inverse transformation is needed for output -the decoder can simply output the appropriate frame directly from the reconstructed picture buffer. However, in cases where frames were not inversely transformed before buffer storage (for example, when all frames in a GOP use the same transformation) , the inverse transformation must be applied before outputting each frame from the decoder to avoid producing forward-transformed frames in the output stream.

[0104] The final stage implements Reference Picture Transformation (Ref pic fwd FPT) , where the selected perspective transformation is applied to pictures / frames retrieved from the reconstructed picture buffer, along with their metadata. This process outputs both transformed frames and their associated metadata. Since the transformation may create empty pixels in the output, an inpainting procedure may be required. Like the inverse transformation, this step is only performed when needed, such as when consecutive frames in a GOP use different transformations.

[0105] Embodiment #1: Transform Selection (Frame-based and / or GOP-based)

[0106] The transform selector component plays a crucial role in determining the optimal transformation to maximize video coding efficiency. This selection can be implemented through either a comprehensive encoding-based approach for optimal results, or through heuristic methods that balance performance with computational complexity.

[0107] Key Design Principles:

[0108] The development of effective heuristic-based algorithms is guided by two fundamental observations about image characteristics that affect coding efficiency:1.The number of edges oriented at approximately 45 degrees should be minimized, as these edges typically present challenges for traditional coding patterns; and2.The number of coding block rows that begin with high-frequency content should be minimized, as this affects prediction efficiency

[0109] Embodiment #1.1A: Edge Detection-Based Transformation

[0110] The embodiment focuses specifically on implementing solutions that minimize the number of near 45-degree edges in the coded picture / frame. The approach uses a minimal set of low-complexity image transformations that can be represented in tabular form:Table A. 1

[0111] This table represents a straightforward decision mechanism where the presence and relative quantity of edges at different angles determines the transformation to be applied. The simplicity of this approach helps maintain low computational overhead while still providing effective transformations for improved coding efficiency. Or alternatively, the approach uses a minimal set of low-complexity image transformations that can be represented in tabular form:Table A. 2

[0112] Edge Detection Implementation Details

[0113] The edge detection system employs two key operators: Edges (45) and Edges (135) , which measure the presence and strength of edges oriented at or near 45 and 135 degrees respectively. The tables represent alternative decision schemes for applying image transformations based on edge detection results:

[0114] Table A. 1 presents the first decision scheme:1.Input condition: Compares if Edges (45) > Edges (135) .2.When the condition is false (fewer 45° edges than 135° edges) , no horizontal mirror is applied.3.When the condition is true (more 45° edges than 135° edges) , a horizontal mirror transformation is applied.4.This aims to minimize near 45° edges by flipping the image horizontally when there are more of them.

[0115] Table A. 2 presents an alternative scheme:1.Input condition: Also compares if Edges (45) > Edges (135) .2.When the condition is false (fewer 45° edges than 135° edges) , no vertical mirror is applied. 3.When the condition is true (more 45° edges than 135° edges) , a vertical mirror transformation is applied.4.This achieves the same goal of minimizing near 45° edges but through vertical rather than horizontal flipping.

[0116] The tables illustrate that either horizontal or vertical mirroring can be used to achieve the desired reduction in 45° edges, though they may have different impacts on the final image orientation. The choice between these approaches could depend on factors like:1.The typical content orientation in the video sequence.2.Any preferences for maintaining certain directional relationships.3.Whether horizontal or vertical flipping produces better coding results for the specific content.

[0117] While the basic implementation uses mirroring as its primary transformation, this operation can alternatively be achieved through various combinations of rotation and mirroring operations. However, it's important to note that such combinations typically incur higher computational costs.

[0118] The implementation of each edge operator can take several forms. The most common approach uses either a single filter or a cascade of filters, where the filter response is designed to be proportional or positively correlated to edge strength at the target angle. Standard implementations often utilize well-established filters such as Sobel, Scharr, or Prewitt operators. For the specific task of detecting near 45 or 135 degree edges, developers can create composite filters by cascading horizontal and vertical edge detectors with appropriate sign adjustments.

[0119] An alternative approach leverages machine learning techniques, where filters are trained on image or video data with similar characteristics to those being processed. These trained filters are specifically optimized to detect edges at near 45 and 135 degree angles. This method can potentially offer better adaptation to specific types of content, though it requires additional upfront investment in training.

[0120] Both traditional filter-based and machine learning approaches represent valid implementation strategies, with the choice between them typically depending on specific requirements for computational efficiency and detection accuracy in the target application.

[0121] Comparison Methods for Edge Detection Outputs

[0122] The comparison between the Edges (45) and Edges (135) detector outputs can be implemented in multiple ways. While direct comparison is the simplest approach, more sophisticated methods using intermediate functions like hinges or thresholds can provide better results.

[0123] A threshold-based comparison is particularly useful as it introduces a bias toward maintaining the original image orientation. When the difference between the two edge detector outputs falls below the threshold value, the system favors not performing any transformation, even if one edge type is slightly more prevalent than the other. This helps avoid unnecessary transformations when the potential benefits would be minimal.

[0124] The threshold value can be set adaptively based on various video characteristics:1.Bit depth (e.g., threshold of 10 for 8-bit video, 40 for 10-bit video) ;2.Video resolution (e.g., threshold of 128 for FullHD, 256 for 4K using the formula ) ;3.Expected noise level (based on video source or average illumination) ; or4.Different thresholds can be applied for luma and chroma components.

[0125] This adaptive threshold approach helps ensure that transformations are only applied when they provide meaningful coding efficiency improvements.

[0126] Selective Image Analysis for Transform Decision

[0127] Rather than analyzing the entire input picture / frame, transforms can be selected based on information from specific image regions. This selective approach offers several advantages for computational efficiency while maintaining effectiveness.

[0128] Region Selection Approaches: The analysis can focus on strategic areas such as corners or border regions (using subsets of columns and rows at image boundaries) of the picture / frame. For further computational savings, a down-sampled version of the input picture / frame can be used.

[0129] The selection of image regions for analysis can be determined through several methods:

[0130] Complexity-Based Selection: For high-resolution images exceeding predefined width thresholds, analysis can be limited to the leftmost and rightmost columns, with the analyzed area sized according to available computational resources.

[0131] Content-Aware Selection: The type of content can guide region selection. For example, with nature landscapes, certain parts of the picture / frame may be analyzed while others are excluded. The upper portion of landscape images might be omitted to avoid processing sky regions that typically contain few edges.

[0132] Dynamic Content Detection: Analysis regions can be selected dynamically based on detected image content. Uniform areas such as sky, water, or sand can be excluded from analysis. Machine learning detectors can identify the most relevant areas for transformation analysis.

[0133] Advanced Transform Selection:

[0134] When considering more complex transformations, the selection criteria can be expanded to include sophisticated edge alignment strategies. For example, the transform can minimize edge alignment with near 45-degree angles while maximizing alignment with near 135-degree angles. This might involve additional rotation or shearing when image edges are predominantly near 0 or 90 degrees. Alternatively, the algorithm could select transformations that maximize 45-degree edge alignment.

[0135] These advanced approaches offer more flexible transformation options while still maintaining the core goal of optimizing coding efficiency through strategic edge alignment.

[0136] Embodiment #1.2A: High Frequency Detail-Based Transformation

[0137] This embodiment focuses on optimizing coding efficiency by minimizing the number of coding block rows that begin with high-frequency content areas. The approach implements a low-complexity transformation strategy guided by the distribution of high-frequency details in the image.

[0138] Basic Algorithm Structure:

[0139] The solution employs a minimal set of transformations that can be represented as follows:Table B. 1

[0140] The table outlines a straightforward decision mechanism where HF (left) and HF (right) represent high-frequency content detectors applied to the left and right portions of the image respectively. Like the edge detection embodiment, while this implementation uses mirroring as its primary transformation, the operation could alternatively be achieved through combinations of rotation and mirroring operations, though with potentially higher computational costs.

[0141] Table B. 1 represents a binary decision scheme for applying image transformations based on the detection of high-frequency details:

[0142] Input Condition: The table evaluates whether HF (left) > HF (right) . HF (left) measures the amount of high-frequency content in the left portion of the image. HF (right) measures the amount of high-frequency content in the right portion of the image.

[0143] Decision Logic:1.When the condition is false (i.e., left side has fewer high-frequency details than right side) :i.No horizontal mirror transformation is applied.ii. The image remains in its original orientation.2.When the condition is true (i.e., left side has more high-frequency details than right side) :i.A horizontal mirror transformation is applied.ii. This flips the image horizontally.

[0144] The purpose of this transformation scheme is to position high-frequency content in image regions where they can be more efficiently encoded. By moving areas with high-frequency details away from the left edge of the image (where prediction typically begins) , the algorithm can potentially improve coding efficiency by starting prediction from regions with lower complexity.

[0145] The scheme maintains simplicity and low computational overhead while providing an effective mechanism for optimizing the positioning of complex image regions within the coded picture / frame.

[0146] Detection Methods

[0147] While the basic algorithm uses mirroring as its primary transformation, this operation can alternatively be achieved through various combinations of rotation and mirroring operations. However, such combinations typically incur higher computational costs.

[0148] Filter-Based Methods:

[0149] The high-frequency content detector can be implemented through several approaches. A common method uses single filters or cascades of filters whose response correlates with high-frequency content strength in the image. This can include taking the sum of absolute values from directional edge operators such as Sobel, Scharr, or Prewitt, which detect edges in multiple directions. Particularly effective is the combined output from horizontal and vertical edge operators. Statistical measures such as variance or standard deviation can also serve as effective indicators of high-frequency content.

[0150] Machine Learning Approach:

[0151] An alternative approach leverages machine learning techniques, particularly neural networks trained for image classification. The activation values from the first layer of such networks can be summed to provide a meaningful measure of high-frequency content, as these early layers typically respond strongly to basic image features including high-frequency details.

[0152] Comparison Methodology: The comparison between HF (left) and HF (right) detector outputs can be implemented either through direct comparison or using intermediate functions like hinges or thresholds. The threshold-based approach introduces a bias toward maintaining the original image orientation when the difference in high-frequency content is minimal.

[0153] Adaptive Threshold Settings: Threshold values can be dynamically adjusted based on several video characteristics:

[0154] The threshold value can be set adaptively based on various video characteristics:1.Bit depth (e.g., threshold of 10 for 8-bit video, 40 for 10-bit video) ;2.Video resolution (e.g., threshold of 128 for FullHD, 256 for 4K using the formula ) ;3.Expected noise level (based on video source or average illumination) ; or4.Different thresholds can be applied for luma and chroma components.

[0155] This adaptive approach ensures transformations are applied only when they offer meaningful improvements in coding efficiency.

[0156] Block-based Analysis: High-frequency analysis can be performed with greater precision by examining individual coding blocks rather than comparing aggregate measures across entire borders. In this approach, the borders are divided into blocks, and high-frequency measures are computed for each block independently. The algorithm then counts which border "wins" more blocks, providing better results especially when high-frequency content is concentrated in specific areas rather than being uniformly distributed.

[0157] Partial Border Analysis: To reduce computational complexity, the analysis can be performed on selected portions of the borders rather than the entire border regions. This can be accomplished through several methods. The simplest approach is to use static selection, such as analyzing only corner regions or processing every Nth line along the borders. Additionally, using downsampled versions of the borders can further reduce computational overhead while maintaining effectiveness.

[0158] The selection of border regions for analysis can also be made adaptive based on various factors. For high-resolution images, the analysis might be limited to only the top and bottom rows up to a defined computational budget threshold. Content-aware adaptation is also possible -for instance, when processing landscape images, the upper portions likely to contain sky can be excluded from analysis. The selection can be made fully dynamic by detecting and excluding uniform areas such as sky, water, or sand. More sophisticated implementations might employ machine learning-based detection to identify the most relevant border areas for analysis.

[0159] When considering more complex transformations beyond simple mirroring, the selection criteria can be extended to optimize the placement of specific content types. The algorithm can work to minimize detail concentration in specific image regions, such as the left border or top-left corner. For landscape images, the transform can be selected to position sky-dominated regions in the top-left corner. When processing portraits, the transform might be chosen to position areas with fewer faces in the top-left corner. Alternatively, the algorithm can simply focus on positioning the most complex content in a preferred corner location.

[0160] This approach provides flexibility in balancing computational complexity with transform selection accuracy, while accounting for different types of image content and processing requirements.

[0161] At least one example is detailed in Embodiment 1.2. In one or more embodiments of the disclosed method of video encoding in FIG. 5, deriving the perspective transformation from the image content of the frame comprises:analyzing high-frequency content distribution along a left margin and a right margin of the frame.

[0162] In one or more embodiments of the disclosed method of video encoding in FIG. 5, analyzing high-frequency content distribution comprises:accumulating values quantifying presence of high-frequency content in N first columns and N last columns of the frame, wherein N is a positive integer.

[0163] In one or more embodiments of the disclosed method of video encoding in FIG. 5, N is determined based on image resolution of the frame or a size of the frame.

[0164] In one or more embodiments of the disclosed method of video encoding in FIG. 5, deriving the perspective transformation from the image content of the frame comprises:determining that the perspective transformation is 180-degree rotation when the left margin of the frame has more high-frequency content than the right margin of the frame.

[0165] At least one example is detailed in Embodiment 1.2. In one or more embodiments of the disclosed method of video decoding in FIG. 6, deriving the perspective transformation from the image content of the decoded frame comprising:analyzing high-frequency content distribution along a left margin and a right margin of the decoded frame.

[0166] In one or more embodiments of the disclosed method of video decoding in FIG. 6, analyzing high-frequency content distribution comprises:accumulating values quantifying presence of high-frequency content in N first columns and N last columns of the decoded frame, wherein N is a positive integer.

[0167] In one or more embodiments of the disclosed method of video decoding in FIG. 6, N is determined based on image resolution of the decoded frame or a size of the decoded frame.

[0168] In one or more embodiments of the disclosed method of video decoding in FIG. 6, deriving the perspective transformation from the image content of the decoded frame comprises:determining that the perspective transformation is 180-degree rotation when the left margin of the decoded frame has more high-frequency content than the right margin of the decoded frame.

[0169] 4.1.3 Embodiment #1.3A: Transformation Determination Using Combined Edge and High-Frequency Analysis

[0170] This embodiment presents an integrated approach that optimizes two key aspects of image coding simultaneously: minimizing diagonal edges (particularly those close to 45 degrees) and reducing the occurrence of high-frequency content at the start of coding block rows. By combining these criteria, the method can achieve better overall coding efficiency compared to considering each aspect independently.

[0171] The algorithm implements this dual optimization while maintaining low computational complexity by utilizing a minimal set of image transformations. The decision process evaluates both the presence of diagonal edges (comparing 45-degree vs 135-degree edge prevalence) and the distribution of high-frequency content (comparing left vs right border complexity) to select the appropriate combination of horizontal and vertical mirroring transforms.

[0172] The transformation selection follows this decision matrix:Table C. 1

[0173] The algorithm uses four key metrics that determine the transformation selection:1.Edges (45) : Measures the prevalence of edges at approximately 45 degrees2.Edges (135) : Measures the prevalence of edges at approximately 135 degrees3.HF (left) : Quantifies high-frequency content in the left portion of the image4.HF (right) : Quantifies high-frequency content in the right portion of the image

[0174] These metrics are calculated using the same methods detailed in previous embodiments -the edge detection approaches and the high-frequency analysis techniques.

[0175] Table C. 1 defines four distinct cases based on two binary conditions:1.First case (false, false) :i.When there are more 135-degree edges than 45-degree edges;ii. AND the right side has more high-frequency content than the left sideiii. Result: No transformations are applied (both mirrors are false) 2.Second case (false, true) :i.When there are more 135-degree edges than 45-degree edgesii. AND the left side has more high-frequency content than the right sideiii. Result: Both horizontal and vertical mirrors are applied3.Third case (true, false) :i.When there are more 45-degree edges than 135-degree edgesii. AND the right side has more high-frequency content than the left sideiii. Result: Only vertical mirror is applied4.Fourth case (true, true) :i.When there are more 45-degree edges than 45-degree edgesii. AND the left side has more high-frequency content than the right sideiii. Result: Only horizontal mirror is applied

[0176] This decision matrix optimizes both edge orientation and high-frequency content distribution simultaneously through appropriate combinations of horizontal and vertical mirroring transformations. All optimization strategies previously discussed for computational efficiency remain applicable to this combined approach. This includes various options for selective image area analysis, such as using only corner regions, analyzing downsampled versions of the image, or employing content-aware selection of regions for analysis. Similarly, the method can be extended to support more complex transformations beyond simple mirroring, including various types of rotation and projection transforms, while maintaining the dual optimization criteria.

[0177] The flexibility of this approach allows it to be adapted based on specific implementation requirements, whether prioritizing computational efficiency or transformation accuracy. The exact balance between edge analysis and high-frequency content analysis can be adjusted according to the characteristics of the target video content and coding requirements.

[0178] At least one example is detailed in Embodiment 1.3. In one or more embodiments of the disclosed method of video encoding in FIG. 5, deriving the perspective transformation from the image content of the frame further comprises:selecting portions of the frame for analysis, wherein the portions comprise at least one of:corner regions of the frame,border regions of the frame, ordownsampled version of the frame.

[0179] In one or more embodiments of the disclosed method of video encoding in FIG. 5, the portions of the frame for analysis are determined based on content type in the frame.

[0180] In one or more embodiments of the disclosed method of video encoding in FIG. 5,for landscape content in the frame, selecting the portions of the frame for analysis according to a first scheme; andfor portrait content in the frame, selecting the portions of the frame for analysis according to a second scheme.

[0181] At least one example is detailed in Embodiment 1.3. In one or more embodiments of the disclosed method of video decoding in FIG. 6, deriving the perspective transformation from the image content of the decoded frame further comprises:selecting portions of the decoded frame for analysis, wherein the portions comprise at least one of:corner regions of the decoded frame,border regions of the decoded frame, ordownsampled version of the decoded frame.

[0182] In one or more embodiments of the disclosed method of video decoding in FIG. 6, the portions of the decoded frame for analysis are determined based on content type in the decoded frame.

[0183] In one or more embodiments of the disclosed method of video decoding in FIG. 6,for landscape content in the decoded frame, selecting the portions of the decoded frame for analysis according to a first scheme; andfor portrait content in the decoded frame, selecting the portions of the decoded frame for analysis according to a second scheme.

[0184] Embodiment #1.1B: transformation determination based on edge detection

[0185] The core function of this selector is to analyze edge patterns within the image and determine appropriate transformations that will optimize these patterns for efficient coding. The method focuses specifically on diagonal edges, as these can significantly impact coding efficiency.

[0186] The selector implements a subset of possible perspective transforms, specifically determining whether to: 1.Apply horizontal mirroring;2.Apply vertical mirroring; and / or3.Apply 180-degree rotation.

[0187] The implementation consists of these sequential steps:1.First Step -45-Degree Edge Detection: The input frame is processed using a specialized filter designed to detect edges oriented at 45 degrees. The absolute value of this filter's output produces edge detection image A. (Reference: FIG. 11 shows both the filter mask configuration and a sample output result) . 2.Second Step -135-Degree Edge Detection: The same input frame is processed with a second filter optimized for detecting edges at 135 degrees. Taking the absolute value of this output creates edge detection image B. (Reference: FIG. 12 illustrates the corresponding filter mask and example filtration result) .3.Third Step -Pixel-Level Analysis: Each corresponding pixel position (x, y) in both edge detection images A and B undergoes comparative analysis using the following formula: where threshold may be set as needed, e.g., to 10 for 8-bps video and 40 for 10-bps video.4.Fourth Step -Global Edge Analysis: After the pixel-level filtering, the method computes two global measures:i.sum (A') : The sum of all pixel values in filtered image A'.ii. sum (B') : The sum of all pixel values in filtered image B'.These sums represent the total prevalence of edges at each orientation across the entire image. The transformation decision is then made based on comparing these values:If sum (A’) > sum (B’) , the input frame is mirrored horizontally to ensure that more pixels are intra-predicted from the left-top direction instead of the right-top one. Otherwise, no image mirroring is performed.5.Fifth Step -High-Frequency Analysis: The method analyzes left and right margins of the image in order to determine if its left or right part contains more high-frequency information by calculating image C. The composite edge map C is created by combining the filtered images A' and B':C(x, y) = A' (x, y) + B' (x, y)             (2) This combined map C represents the total edge content at each pixel position. FIG. 13 illustrates a visual representation of the result C.6.Sixth Step -Margin Analysis: The method analyzes the high-frequency content in the image margins by examining N columns from both left and right edges of image C. The method accumulates values of pixels in N first and N last columns of image C. N can be set adaptively to video resolution, e.g., to i.e. 128 for FullHD and 256 for 4K video. If there are more high frequencies in the left margin, the input frame is rotated by 180 degrees. Otherwise, the method maintains the original orientation of the image.

[0188] FIG. 14 illustrates a schematic view showing a full decision tree.

[0189] Alternatively, a different edge filters can be used, e.g. Sobel horizontal and vertical, Prewitt edge operators, or Scharr edge operators.

[0190] Note that the transform selection process can be optimized by analyzing selected regions of the input frame rather than processing the entire frame. Instead of performing steps 1-6 on the complete image, the algorithm can focus on specific areas such as corners or border regions of the frame, examining only a subset of columns and rows along the image boundaries. This targeted analysis maintains effectiveness while reducing computational overhead. Further computational efficiency can be achieved by applying the algorithm to a downsampled version of the input image, which preserves the essential edge and frequency characteristics while significantly reducing the number of pixels to process.

[0191] The fundamental objective of this method remains consistent regardless of the implementation approach: to transform the input frame in a way that reduces texture complexity at the beginning of each row. By positioning simpler textures at row starts, the method creates more favorable conditions for the prediction process of subsequent blocks, ultimately leading to more efficient coding outcomes. This optimization is particularly beneficial for coding schemes that process images in a row-by-row manner.

[0192] At least one example is detailed in Embodiment 1.1B. In one or more embodiments of the disclosed method of video encoding in FIG. 5, determining the perspective transformation comprises:detecting edges oriented at a lower left to upper right direction in the frame to obtain a first result, such as the edge detection image A;detecting edges oriented at a lower right to upper left direction in the frame to obtain a second result, such as the edge detection image B;comparing strength of detected edges by comparing sums of absolute values from the first result and sums of absolute values from the second result; anddetermining the transformation based on the comparing result.

[0193] In one or more embodiments of the disclosed method of video encoding in FIG. 5, determining the perspective transformation comprises:determining that the perspective transformation comprises horizontal mirroring based on a comparison between the sums of absolute values from the first result and the sums of absolute values from the second result.

[0194] In one or more embodiments of the disclosed method of video encoding in FIG. 5, determining the perspective transformation comprises:determining that the perspective transformation comprises vertical mirroring based on a comparison between the sums of absolute values from the first result and the sums of absolute values from the second result.

[0195] At least one example is detailed in Embodiment 1.1B. In one or more embodiments of the disclosed method of video decoding in FIG. 6, determining the perspective transformation comprises:detecting edges oriented at a lower left to upper right direction in the decoded frame to obtain a first result;detecting edges oriented at a lower right to upper left direction in the decoded frame to obtain a second result;comparing strength of detected edges by comparing sums of absolute values from the first result and sums of absolute values from the second result; anddetermining the transformation based on the comparing result.

[0196] In one or more embodiments of the disclosed method of video decoding in FIG. 6, determining the perspective transformation comprises:determining that the perspective transformation comprises horizontal mirroring based on a comparison between the sums of absolute values from the first result and the sums of absolute values from the second result.

[0197] In one or more embodiments of the disclosed method of video decoding in FIG. 6, determining the perspective transformation comprises:determining that the perspective transformation comprises vertical mirroring based on a comparison between the sums of absolute values from the first result and the sums of absolute values from the second result.

[0198] Embodiment #1.2B: transformation determination based on filter type

[0199] This embodiment presents a simplified variant of the edge detection approach, focusing specifically on vertical mirroring decisions. The method employs a different filtering strategy while maintaining the core concept of edge orientation analysis..

[0200] The process begins by independently analyzing each component (Y, Cb, and Cr) of the input image Iorg. Two separate filtering operations are performed on each component: Input image Iorg (each YCbCr component independently) is filtered using 3x3 Sobel filter for 45-degree edges detection to produce image I45 and is filtered using 3x3 Sobel filter for 135-degree edges detection to produce image I135.

[0201] The analysis proceeds on a pixel-by-pixel basis, examining each position (x, y) to determine edge direction dominance. A pixel is considered to have a dominant edge direction when the absolute difference between the 45-degree edge response I45 (x, y) and the 135-degree edge response I135 (x, y) exceeds a defined threshold. For 10-bit video content, this threshold is typically set to 160. When dominance is detected, the method preserves only the stronger edge response while setting the weaker response to zero, effectively creating a map of clearly defined edge orientations.

[0202] Following this dominance analysis, the method computes two global measures by counting all remaining non-zero values in both filtered images: Where:S45 represents the total count of dominant 45-degree edges across all color components.S135 represents a total count of dominant 135-degree edges across all color components. represents 45-degree edge detection results for Y, Cb, and Cr components respectively. represents 135-degree edge detection results for Y, Cb, and Cr components respectively. x,y: Pixel coordinates in the image.The summation (∑) is performed over all pixel positions.The expression |value| > 0 ? 1 : 0 counts each non-zero pixel as 1, effectively counting the number of detected edges.

[0203] This computation is performed across all three color components (Y, Cb, and Cr) , aggregating the total number of dominant edges in each direction.

[0204] If S135 > (S45 + TH) , the frame remains unmodified (e.g., not mirrored) . Otherwise, it is mirrored vertically. The threshold TH serves to bias the decision toward keeping the original frame orientation when the difference between S135 and S45 is small. The value of TH can be set as a fixed value, e.g. TH = -6000 or calculated adaptively based on factors such as:Video resolution (e.g. TH = -3000 for HD, -6000 for 4K) ;Bit depth (e.g. TH = -2000 for 8-bit, -8000 for 10-bit video) ;Picture size (e.g. TH = -width*height / 100) ; and / orContent type (e.g. smaller threshold for natural content, larger for synthetic) .

[0205] Embodiment #1.3B: Analysis of Selected Image Regions

[0206] To reduce computational complexity, the transform selection can be based on analyzing only specific regions of the input image rather than processing the entire frame. This enables faster processing while maintaining effective transform selection.

[0207] Edge-based Analysis:

[0208] When using edge-based analysis, only selected borders of the image are processed instead of the full frame. The selection of which edge to analyze is content-aware, prioritizing edges that contain sufficient detail or information. Once an edge is selected, the analysis focuses on predetermined columns or rows within that edge region. The number of analyzed columns or rows isn't fixed -it can adapt based on factors like image resolution, available computational resources, or the complexity of content in the edge region.

[0209] Corner-based Analysis:An alternative approach uses corner regions for analysis instead of full edges. In this method, N×N corner areas are analyzed rather than complete columns or rows. The size N of these corner regions can be fixed (such as 64×64 pixels) , adapted to the image resolution (for example, width / 8 × height / 8) , or adjusted based on content complexity. When comparing high-frequency content between regions, the analysis can focus on specific corner pairs -for example, comparing top-left with top-right corners for left / right decisions, or corresponding corner pairs for vertical / horizontal decisions.

[0210] Content-aware Region Selection:

[0211] The selection of regions to analyze can also be guided by the type of content in the frame. For landscape images, the method can detect which corners contain sky regions and select a transform that positions the largest sky region in the top-left corner, which can improve coding efficiency by grouping uniform areas together. With portrait images, the analysis can identify regions with and without faces, selecting a transform that positions areas with fewer faces in the top-left corner. Alternatively, for portraits, the algorithm might choose to position the most complex content in the top-left corner to maximize prediction efficiency.

[0212] The choice between these approaches -edge-based, corner-based, or content-aware selection -can be made based on the specific requirements of the implementation, such as computational constraints, performance requirements, or the typical content being encoded. Each approach offers different trade-offs between computational complexity and transform selection accuracy.

[0213] The adaptive calculation helps ensure appropriate transform decisions across different video characteristics. For example, higher resolutions may benefit from a larger threshold since they contain more edge samples, while lower bit depths may need a smaller threshold due to reduced precision in edge detection.

[0214] Embodiment #1.4B: Transform Selection Based on Texture Complexity

[0215] This embodiment describes a method for selecting image transformations based on texture complexity analysis. The method evaluates the complexity of different image regions to determine the optimal transformation that will improve coding efficiency.

[0216] The texture complexity is quantified using a combination of metrics. The primary metric is calculated by applying edge detection operators (such as Sobel filters) to image regions and aggregating their responses. Regions with high edge density or varying edge directions are considered more complex. Additional metrics can include local variance, entropy of pixel values, or frequency domain analysis.

[0217] The decision process follows these steps:1.Calculate texture complexity values for relevant image regions2.Compare these values against predefined or content-adaptive thresholds3.Use the comparison results to traverse the decision tree shown in FIG. 16, where:i.The first branch point compares edge angles (45-degree vs 135-degree) ;ii. The second level evaluates high-frequency content in different image regions;iii. The combination of these comparisons determines the final transform selection.

[0218] The thresholds for complexity comparison can be adapted based on:1.Image resolution;2.Content type (natural vs synthetic) ; 3.Target bitrate; and / or4.Local statistics of the image.

[0219] This method can be combined with the Sobel filter analysis described in previous embodiments to provide a more robust transform selection process that considers both edge directionality and texture complexity.

[0220] Embodiment #1.5B: Transform Selection Based on Rate-Distortion Optimization

[0221] This embodiment describes a method for selecting image transformations through Rate-Distortion Optimization (RDO) , which aims to find the optimal balance between compression efficiency and visual quality. The method evaluates different possible transforms by measuring their impact on both bitrate and image quality.

[0222] For each candidate transform, the method calculates a cost metric that combines two factors: the visual quality of the reconstructed image and the number of bits required for encoding. Visual quality can be measured using established metrics such as PSNR (Peak Signal-to-Noise Ratio) or SSIM (Structural Similarity Index) . The compression efficiency is quantified by the size of the resulting bitstream. These two factors may be combined using a Lagrangian cost function, where the Lagrange multiplier can be derived from the encoder's quantization parameter (QP) to ensure proper weighting between quality and bitrate.

[0223] To manage computational complexity, several optimization strategies can be employed. Instead of performing RDO on the full picture / frame, the analysis can be restricted to selected representative areas. Alternatively, the input picture / frame can be downscaled before RDO analysis to reduce the amount of processed data. The RDO process can also be simplified by considering only a subset of coding modes -for example, evaluating only intra prediction modes (IPMs) or specifically angular prediction modes.

[0224] In a practical implementation, the encoder processes each candidate transform by:1.Applying the transform to the input picture / frame (or selected area / downscaled version) ;2.Encoding the transformed picture / frame;3.Measuring the resulting bitrate and visual quality;4.Computing the RD cost using the Lagrangian formula; and5.Selecting the transform with the lowest overall RD cost.

[0225] This approach ensures that the selected transform provides the best trade-off between coding efficiency and visual quality within the given constraints.

[0226] At least one example is detailed in Embodiment 1.5B. In one or more embodiments of the disclosed method of video encoding in FIG. 5, determining the perspective transformation comprises:encoding each candidate transformation of an image area of the frame;measuring a compression rate and a visual quality metric for each encoded candidate transformation;computing a cost metric combining the compression rate and visual quality metric using a Lagrange multiplier; andselecting one candidate transformation with a lowest cost metric.

[0227] In one or more embodiments of the disclosed method of video encoding in FIG. 5, the visual quality metric is selected from a group consisting of peak signal-to-noise ratio (PSNR) and structural similarity index measure (SSIM) .

[0228] In one or more embodiments of the disclosed method of video encoding in FIG. 5, the Lagrange multiplier is determined based on a quantization parameter of the frame.

[0229] In one or more embodiments of the disclosed method of video encoding in FIG. 5, the encoding each candidate transformation is performed on one of:a full picture of the frame;a selected area of the frame; ora down-scaled version of the frame.

[0230] Embodiment #1.6B: Transform Selection Based on Content Orientation Analysis

[0231] This embodiment describes a method for selecting image transformations by analyzing the natural orientation of the content within the frame. The method determines whether the visual content appears rotated or misaligned relative to its natural viewing orientation and selects an appropriate transform to restore optimal alignment.

[0232] The content orientation can be detected through multiple approaches. One method analyzes structural elements in the scene -for instance, detecting the horizon line in landscapes, identifying vertical structures like buildings or trees, or recognizing text orientation. Another approach leverages device metadata captured during recording, such as camera orientation sensors or shooting mode information, which can indicate how the device was positioned when capturing the content.

[0233] Once the content orientation is determined, the method selects a transform that will align the content with its natural viewing orientation. For example:-If vertical structures appear tilted, a rotation transform can be applied to make them vertical;-If text appears sideways or upside down, the appropriate 90° or 180° rotation can be selected;-If the horizon appears diagonal, a rotation transform can be applied to make it horizontal.

[0234] The selection of the transform takes into account:-The detected content orientation angle;-Common viewing orientations for the content type;-Codec optimization patterns (many codecs are optimized for naturally oriented content) ; and / or -Potential impact on coding efficiency.

[0235] By restoring the content to its natural orientation, this method typically improves coding efficiency since video codecs are generally optimized for processing naturally oriented content where vertical and horizontal structures align with the coding grid.

[0236] Embodiment #1.7B: Transform Selection Based on Motion Analysis

[0237] This embodiment describes a method for selecting transforms for inter-predicted frames by analyzing motion characteristics between frames. The approach aims to optimize the coding efficiency of motion information by selecting transforms that minimize motion vector prediction errors.

[0238] The method operates in two primary ways. The first approach uses optical flow analysis, where the motion field between the current frame and reference frames is computed at a pixel level. This dense motion field provides detailed information about how objects are moving between frames. The second approach uses a coarser block-based analysis, where motion vectors are computed for larger blocks of pixels, similar to how video codecs typically handle motion estimation but at a higher level.

[0239] The transform selection process follows these steps:

[0240] First, for each candidate transform, the current frame is transformed, and motion analysis is performed between it and available reference frames. This analysis can use either the pixel-based optical flow or the block-based motion estimation approach. When using optical flow, motion information is computed for each pixel position. With the block-based approach, motion vectors are calculated for blocks arranged in a coarse grid across the frame.

[0241] Next, the method evaluates how well the motion information can be predicted. It processes samples or blocks in the codec's scanning order, predicting each motion vector from its neighbors and calculating the prediction error. This error can be measured using standard metrics such as mean absolute error or mean squared error.

[0242] Finally, the transform that results in the lowest cumulative motion vector prediction error is selected. This selection typically leads to improved coding efficiency since it creates a motion field that is more predictable and therefore requires fewer bits to encode.

[0243] The method can be tuned by:Adjusting the block size in the coarse grid approach;Selecting different error metrics for the prediction quality assessment;Modifying the set of reference frames considered; and / orChanging the motion vector prediction patterns.

[0244] This approach is particularly effective for content with consistent motion patterns, as it helps align the transform with the predominant direction of motion in the sequence.

[0245] At least one example is detailed in Embodiment 1.7. In one or more embodiments of the disclosed method of video encoding in FIG. 5, determining the perspective transformation comprises:obtaining motion information between a current frame and reconstructed frames;calculating motion vector prediction errors for different candidate transformations; andselecting one candidate transformation that minimizes the motion vector prediction error as the perspective transformation.

[0246] In one or more embodiments of the disclosed method of video encoding in FIG. 5, obtaining motion information comprises one of:processing an optical flow field for selected reconstructed frames; oranalyzing motion vectors obtained for a coarse grid of image areas.

[0247] In one or more embodiments of the disclosed method of video encoding in FIG. 5, calculating motion vector prediction errors comprises:predicting motion information for each consecutive sample or block in codec scanning order; andcomparing the prediction with obtained motion information using a cost function.

[0248] At least one example is detailed in Embodiment 1.7. In one or more embodiments of the disclosed method of video decoding in FIG. 6, determining the perspective transformation comprises:obtaining motion information between a current frame and reconstructed frames;calculating motion vector prediction errors for different candidate transformations; andselecting one candidate transformation that minimizes the motion vector prediction error as the perspective transformation.

[0249] In one or more embodiments of the disclosed method of video decoding in FIG. 6, obtaining motion information comprises one of:processing an optical flow field for selected reconstructed frames; oranalyzing motion vectors obtained for a coarse grid of image areas.

[0250] In one or more embodiments of the disclosed method of video decoding in FIG. 6, calculating motion vector prediction errors comprises: predicting motion information for each consecutive sample or block in codec scanning order; andcomparing the prediction with obtained motion information using a cost function.

[0251] Embodiment #1.8B: Decoder-side Transform Determination

[0252] This embodiment describes a method where the decoder independently determines which transform to apply, reducing or eliminating the need for explicit transform  signaling in the bitstream. This approach requires careful consideration of information availability at the decoder to ensure consistent transform selection with the encoder.

[0253] The decoder makes transform decisions based on two types of information:1.The decoded image content itself; and2.Additional metadata available in the bitstream, such as:-Image / video content type;-Frame resolution;-Coding parameters; and / or-Frame type and position within GOP structure.

[0254] For I-frames (particularly the first frame in a GOP) , the transform selection process occurs at a specific point in the decoding pipeline: after the frame is fully decoded but before it is output for display. This timing is crucial as it ensures all necessary information is available for making the transform decision while still allowing the transform to be applied before frame display.

[0255] For other frames in the GOP, the information availability requirements and transform selection timing depend on whether the method uses:-Per-GOP transform selection: where a single transform decision applies to all frames in a GOP.-Per-frame transform selection: where each frame may use a different transform.-Hybrid approach: where certain frame types (like I-frames) trigger new transform decisions.

[0256] These scenarios operate differently in terms of when transform decisions can be made and what information must be available. The specific requirements and processes for both per-GOP and per-frame scenarios are detailed in the following sub-embodiments.

[0257] Embodiment #1.8.1: Per-GOP Transform Determination at Decoder

[0258] This embodiment describes a method where a single transform decision is made for an entire Group of Pictures (GOP) , with the transform being determined when processing the GOP's first frame.

[0259] Transform Selection and Application Process:

[0260] The transform determination occurs after fully decoding the first frame (typically an I-frame) of the GOP. The selected transform then applies to all subsequent frames in the GOP without need for recalculation. This approach is computationally efficient since it requires only one transform decision per GOP.

[0261] Handling of IDR Frames:

[0262] When an IDR (Instantaneous Decoding Refresh) frame appears within a GOP, indicating a scene change, the transform selection process is restarted for a subsequent GOP next to the current GOP. An IDR (Instantaneous Decoding Refresh) frame serves as the first frame of a new GOP, typically used at scene changes. When an IDR frame appears, the current GOP ends, and a new GOP begins with the IDR frame.

[0263] Upon encountering an IDR frame:-The decoder performs a new transform determination based on the IDR frame content;-The newly selected transform applies to all frames following the IDR until the next GOP or scene change; and -Previous transform selections are discarded since the IDR frame clears all reconstructed picture buffers.

[0264] Transform Selection Methods:

[0265] Since the decoder has access to the fully decoded frame content when making transform decisions, it can employ any of the described selection methods, including:-Edge analysis;-Texture complexity evaluation;-Content orientation detection; and / or -Motion pattern analysis.

[0266] The key requirement for any selection method is orientation invariance -the method must work correctly regardless of how the image is currently oriented. For example, in one embodiment, face detection algorithms must identify faces in any orientation, edge detection must work on rotated content, and texture analysis must be rotation-invariant. This orientation invariance ensures that the transform selection process remains stable and produces consistent results regardless of the input frame's current orientation.

[0267] At least one example is detailed in Embodiment 1.8.1B. In one or more embodiments of the disclosed method of video encoding in FIG. 5, the frame is a first frame in a group of pictures (GOP) , when determining a perspective transformation for the first frame, applying an inverse perspective transformation to the first frame for remaining frames in the GOP.

[0268] At least one example is detailed in Embodiment 1.8.1B. In one or more embodiments of the disclosed method of video decoding in FIG. 6, the decoded frame is a first frame in a group of pictures (GOP) , when determining a perspective transformation for the first frame, applying an inverse perspective transformation to the first frame for remaining frames in the GOP.

[0269] Embodiment #1.8.2: Per-frame Transform Determination at Decoder

[0270] This embodiment describes a method for determining transforms independently for each frame at the decoder side. The process differs significantly between I-frames and other frame types due to different information availability during decoding.

[0271] I-frame Transform Determination: For the first frame in a GOP (I-frame) , the transform can be selected after the frame is fully decoded. This timing allows the use of any transform selection method described, including content-based analysis, since the complete frame data is available.

[0272] Non-I-frame Transform Determination: For other frames in the GOP, transform selection faces a key constraint: the decision must be made before the frame is fully decoded. This constraint exists because:1.Reference frames in the reconstructed picture buffer must be transformed appropriately before they can be used for decoding; and2.Both pixel data and associated metadata of reference pictures / reconstructed frames need to be aligned with the transform of the current frame.

[0273] To address this constraint, two main approaches are possible:1.Reference-based Selection:i.In the selection scheme, transformation selected for the closest decoded frame (by presentation order or timestamp) is used.ii. This approach assumes temporal consistency in optimal transforms.iii. The scheme works well for content with stable characteristics. 2.Metadata-only Selection:i.In the selection scheme, transform decision is solely based on frame metadata available in the bitstream. ii.The scheme is completely independent of frame content.iii. The scheme eliminates dependency on previous frames.

[0274] Critical Requirement: The selected transform determination method must be deterministic -producing identical results at both encoder and decoder when given the same inputs. This consistency is essential to prevent drift between encoder and decoder, which would lead to incorrect video reconstruction.

[0275] At least one example is detailed in Embodiment 1.8.2. In one or more embodiments of the disclosed method of video decoding in FIG. 6, the method further comprises:determining the perspective transformation before fully decoding each frame based on a transformation determined for a previously decoded frame having a closest presentation order count (POC) or timestamp.

[0276] Embodiment #2: Image transformation with selected transform

[0277] Embodiment #2.1: Full transformation

[0278] This embodiment describes the complete mathematical framework for applying perspective transformations to images. The method uses homogeneous coordinates and transformation matrices to enable flexible geometric manipulations of image content.

[0279] The equations for performing a perspective transformation on a 2D point with coordinates (x, y) involve a 3x3 transformation matrix and homogeneous coordinates. First, the 2D point (x, y) is converted into homogeneous coordinates by adding a third coordinate with a value of 1: (x, y, 1) .

[0280] The perspective transformation is defined by a 3×3 matrix:

[0281] The elements of this matrix (athrough h) control the specifics of the perspective transformation, such as scaling, rotation, translation, and perspective distortion.

[0282] The transformed coordinates are obtained by multiplying the transformation matrix with the homogeneous coordinates of the input point:

[0283] This matrix multiplication results in homogeneous coordinates (x', y', w) . To obtain the final transformed 2D point coordinates, the method performs perspective division by dividing the first two coordinates by the homogeneous component w:x_transformed = x′ / w                 (7) y_transformed = y′ / w                 (8)

[0284] Therefore, the equations for performing a perspective transformation on a 2D point (x, y) are:x_transformed = (a*x + b *y + c)  /  (g *x + h *y + 1)       (9) y_transformed = (d *x + e *y + f)  /  (g *x + h *y + 1)       (10)

[0285] The transformation may shift some pixels outside the original size of the image. In possible implementations, the size of the output image can be increased to include all pixels, and the parts of the resulting image that are empty (e.g., due to rotating the image by 45 degrees) may be inpainted using neighboring occupied pixels. In other implementations, the output image can be cropped to the original size.

[0286] When applying the transformation, pixels may be mapped outside the original image boundaries. This creates a choice in how to handle the transformed image output format and any empty regions that result from the transformation.

[0287] One approach is to expand the output canvas dimensions to accommodate all transformed pixels. This ensures no transformed content is lost but creates empty regions that require filling, particularly in cases like 45-degree rotations where corners of the expanded canvas would be empty. These empty regions can be filled through inpainting techniques that use nearby valid pixels. The inpainting can be performed using various methods such as nearest neighbor filling, weighted interpolation from valid neighbors, or iterative diffusion-based filling to create seamless content in the empty areas.

[0288] An alternative approach is to maintain the original image dimensions in the output. This requires cropping any pixels that transform outside the original boundaries and typically involves centering the transformed content within the original frame. While this approach may lose some transformed content at the edges, it maintains consistent memory usage and may be preferable when working with fixed buffer sizes or when downstream processing expects specific dimensions. Optional padding can be applied if needed to fill any remaining empty regions within the fixed dimensions.

[0289] The choice between these approaches depends on several practical factors: available memory constraints, processing power requirements, whether preserving all transformed content is essential, and any requirements imposed by downstream processing steps in the imaging pipeline.

[0290] Embodiment #2.2: subset of full transformation

[0291] A more computationally efficient variant can be achieved by restricting the transformation matrix to support only a specific subset of geometric operations. This can be done by limiting both the number of active matrix elements and their possible values.

[0292] One important subset is obtained by using only elements a through f in the transformation matrix, which restricts the transformations to the affine group. Affine transformations preserve parallel lines and include operations like scaling, rotation, translation, and shearing, but exclude perspective effects.

[0293] In this variant, an even more restricted subset can be achieved by using only elements a, b, d, and e, while limiting their values to the set {-1, 0, 1} . This creates a highly efficient transformation subset that supports only 90-degree rotations (0°, 90°, 180°, 270°) and vertical / horizontal mirroring operations. In this case, the equations for performing a perspective transformation on a 2D point (x, y) are simplified to:x_transformed = (a*x + b *y)               (11) y_transformed = (d *x + e *y)              (12)

[0294] The limited set of possible values also makes this variant more suitable for efficient signaling in the bitstream. Additional transformations can be created by combining these basic operations, though care must be taken to maintain the restricted value set through the combinations. This ensures that the computational efficiency benefits are preserved while still providing useful geometric transformations for video coding.

[0295] At least one example is detailed in Embodiment 2.2. In one or more embodiments of the disclosed method of video encoding in FIG. 5, empty pixels in the forward transformed frame are filled using at least one pixel filling method from neighboring non-empty pixels;the forward transformed frame is obtained from the perspective transformation of the frame; and the at least one pixel filling method is one of interpolation from neighboring non-empty pixels, extrapolation from neighboring non-empty pixels, or machine learning-based in-painting.

[0296] At least one example is detailed in Embodiment 2.2. In one or more embodiments of the disclosed method of video decoding in FIG. 6, empty pixels in the inverse transformed frame are filled using at least one pixel filling method from neighboring non-empty pixels;the inverse transformed frame is obtained from the perspective transformation of the decoded frame; and the at least one pixel filling method is one of interpolation from neighboring non-empty pixels, extrapolation from neighboring non-empty pixels, or machine learning-based in-painting.

[0297] Embodiment #4: signaling Support for Transformations

[0298] This embodiment describes different methods for signaling the Flexible Picture Transform (FPT) parameters within the video bitstream. The first aspect covers how to indicate whether FPT is used at different levels of the video hierarchy.

[0299] Embodiment 4.1: FPT enabling Indication

[0300] Embodiment 4.1.1: FPT Usage Indication at Sequence Level

[0301] When FPT is to be applied consistently across an entire sequence, its usage can be signaled efficiently at the sequence level. This is implemented by adding an FPT flag to the Sequence Parameter Set (SPS) Raw Byte Sequence Payload (RBSP) .

[0302] The syntax addition to the SPS RBSP is defined as follows:Table C. 2:

[0303] Syntax Element Definitions:sps_fpt_enabled_flag (1 bit) : Indicates whether FPT is enabled for this sequence:When set to 1, it indicates that FPT is enabled for the entire sequence;When set to 0, FPT is disabled.flex_pic_trns_struct: A container structure that holds the transformation metadata, including transform type, parameters and any associated data required for reconstruction.This syntax represents the highest level of signaling for FPT -at the sequence level -meaning that if enabled here, the transformation capabilities would be available for the entire video sequence. The actual transformation parameters for specific frames would be signaled at lower levels in the bitstream hierarchy.

[0304] At least one example is detailed in Embodiment 4.1.1. In one or more embodiments of the disclosed method of video encoding in FIG. 5, the flag is signaled at one of:sequence level in a sequence parameter set;group of pictures level in a picture parameter set;picture level in a picture header; orslice level in a slice header.

[0305] At least one example is detailed in Embodiment 4.1.1. In one or more embodiments of the disclosed method of video decoding in FIG. 6, the flag is signaled at one of:sequence level in a sequence parameter set;group of pictures level in a picture parameter set;picture level in a picture header; orslice level in a slice header.

[0306] Embodiment 4.1.2: FPT Usage Indication at GOP Level

[0307] For cases where transformation parameters need to vary between different Groups of Pictures (GOPs) , the FPT usage can be signaled at the PPS level. This provides more flexibility than sequence-level signaling while remaining more efficient than frame-level signaling.

[0308] The syntax addition to the PPS RBSP is defined as follows:Table C. 3: Syntax Element Definitions: pps_fpt_enabled_flag (1 bit) : Controls FPT activation for the current GOP:When the flat is set to 0, FPT is disabled for this GOP;When the flat is set to 1, FPT is enabled for this GOP. flex_pic_trns_struct: structure containing metadata used for transforming picture / frame.The structure flex_pic_trns_struct is only present if sps_fpt_enabled_flag is 1.The structure flex_pic_trns_struct may contain:Transformation matrix coefficients;Corner coordinates; and / orOther transformation-related parameter.This embodiment describes how to signal FPT usage at the GOP level using the picture parameter set (PPS) RBSP syntax. The FPT signaling is placed in the picture parameter set RBSP. This is a more flexible level than SPS as it applies to a group of pictures rather than the entire sequence. The advantage of this signaling method compared to other embodiments is its increased flexibility -it allows different GOPs to use different FPT settings or to enable / disable FPT on a GOP-by-GOP basis, rather than being fixed for the entire sequence.

[0309] Embodiment 4.1.3: FPT Usage Indication at Picture Level

[0310] For maximum flexibility, FPT parameters can be signaled at the individual picture level. This requires coordination between sequence, picture parameter set, and picture header syntax elements to ensure proper inheritance and override behavior.The sequence parameter set syntax is extended as follows:Table C. 4: Syntax Element Definitions:sps_fpt_enabled_flag –indicates if FPT is used in this sequence.sps_fpt_struct_in_ph_flag –indicates if an FPT structure is transported in SPS.flex_pic_trns_struct –structure containing metadata used for transforming picture.

[0311] Picture header structure syntax is illustrated as follows:Table C. 5: Syntax Element Definitions: ph_fpt_enabled_flag –indicates if FPT is used in this picture / frame. ph_fpt_struct_in_ph_flag –indicates if an FPT structure is transported in picture header. flex_pic_trns_struct –structure containing metadata used for transforming picture / frame. This provides the most flexible control as it allows:1.Enabling / disabling FPT at sequence level;2.Controlling whether FPT structures can appear in picture headers;3.Enabling / disabling FPT for individual pictures / frames;4.Including specific transformation parameters for each picture / frame.This is more complex than the previous embodiments but offers the finest level of control over FPT application.

[0312] Embodiment 4.1.4: Decoder-side Transform Decision

[0313] This embodiment presents a method to minimize signaling overhead by enabling the decoder to determine the appropriate transformation parameters directly from the decoded image content. This approach significantly reduces bitstream size since only minimal flags are required rather than full transformation specifications.

[0314] The decoder includes a transform selection module positioned after the entropy decoder. This module analyzes the decoded image to determine what transformation was applied during encoding, eliminating the need to signal explicit transform matrices or corner coordinates in the bitstream.

[0315] [Corrected under Rule 26, 03.04.2025]Sequence-level signaling for the decoder-side transform decision is illustrated in the following:Table C. 6: Sequence parameter set RBSP syntax Syntax Element Definitions:sps_fpt_enabled_flag –indicates if FPT is used in this sequence.

[0316] When the decoder determines transformation from the decoded picture content, but FPT usage needs to be controlled on a per-picture basis, a flag indicating FPT usage for the current picture may be signaled in the bitstream. This flag is included in the picture header as shown in Table C. 7. The flag signals to the decoder whether it should perform transformation determination and application for the current picture, while the actual transformation parameters are derived from the decoded picture content rather than being explicitly signaled. Alternatively, such information can be signaled at slice level, or individually per each image tile using slice header or similar syntax structure.Table C. 7: Picture header structure syntax Syntax Element Definitions: ph_fpt_enabled_flag –indicates if FPT is used in this picture / frame.The decoder-based transform decision approach minimizes signaling overhead by enabling the decoder to independently determine appropriate transforms. Instead of transmitting detailed transform parameters, this method requires only minimal flags in the bitstream to indicate whether FPT is active for a given unit of video.The system offers flexible granularity in how FPT activation is controlled. At the highest level, FPT can be enabled or disabled for entire sequences through sequence parameter sets. For more fine-grained control, activation flags can be placed at the picture / frame level in picture headers, the slice level in slice headers, or even at the tile level. This multi-level control allows encoders to selectively apply FPT where it provides the most benefit while maintaining minimal signaling overhead.When FPT is enabled, the decoder analyzes the decoded content to determine the appropriate transform parameters. This analysis mirrors the encoder-side transform selection process but operates on the decoded image data. Since both encoder and decoder use the same selection algorithm, they arrive at matching transform decisions without requiring explicit signaling of transform parameters in the bitstream.The key advantage of this approach is its efficiency in bitstream utilization. By moving transform parameter determination to the decoder side, the only required signaling is the minimal set of activation flags. This provides significant bitrate savings compared to approaches that explicitly signal transform parameters, while still maintaining the coding efficiency benefits of FPT.

[0317] At least one example is detailed in Embodiments 4.1.1, 4.2.1.2, and 4.1.4. In one or more embodiments of the disclosed method of video encoding in FIG. 5, when signaled at the sequence level, the flag indicates perspective transformation enabling or disabling for an entire sequence;when signaled at the group of pictures level, the flag indicates perspective transformation enabling or disabling for a group of pictures;when signaled at the picture level, the flag indicates perspective transformation enabling or disabling for individual pictures; or when signaled at the slice level, the flag indicates perspective transformation enabling or disabling for individual slices.

[0318] At least one example is detailed in Embodiments 4.1.1, 4.2.1.2, and 4.1.4. In one or more embodiments of the disclosed method of video decoding in FIG. 6, when signaled at the sequence level, the flag indicates perspective transformation enabling or disabling for an entire sequence;when signaled at the group of pictures level, the flag indicates perspective transformation enabling or disabling for a group of pictures;when signaled at the picture level, the flag indicates perspective transformation enabling or disabling for individual pictures; or when signaled at the slice level, the flag indicates perspective transformation enabling or disabling for individual slices.

[0319] Embodiment 4.2: Transform Representation

[0320] Embodiment 4.2.1: Full Transform Matrix Representation

[0321] This embodiment describes how to represent and signal a complete perspective transformation using all elements of the transformation matrix in the bitstream metadata.

[0322] The chosen transformation may be included in metadata in the form of a vector indicating values of a two dimensional perspective transform matrix. In order to signal all possible transformations, 9 values of the perspective transform matrix have to be included in FPT-related metadata.Table C. 8: Syntax Element Definitions:fpt_persp_mat_coeff [rowIdx] [colIdx] –coefficients of projection transform matrix.The full transform matrix approach enables signaling of a complete perspective transformation by transmitting all nine coefficients of a 3x3 perspective transform matrix. The syntax structure flex_pic_trns_struct contains nested loops over row and column indices that populate each matrix coefficient using the fpt_persp_mat_coeff [rowIdx] [colIdx] array. Each coefficient is stored in f (64) format, indicating a 64-bit floating point value.This signaling method provides the capability to represent any possible perspective transformation without restrictions, as it carries all elements required for a full perspective transform matrix. The complete matrix requires transmitting all nine coefficients, making it suitable for scenarios where maximum transformation flexibility is needed.

[0323] Embodiment #4.2.2: Limited transform matrix

[0324] To reduce signaling overhead, this embodiment uses a restricted subset of the transformation matrix elements. In order to signal only a subset of possible transformations, less than 9 values of the perspective transform matrix have to be included in FPT-related metadata. The syntax structure supports various restrictions, including:1.Affine Transform Restriction (6 coefficients) ; and2.Basic Geometric Operations (4 coefficients with restricted values) .

[0325] Embodiment #4.2.3: Predictive signaling of transform matrix

[0326] This embodiment introduces differential coding of transformation matrices to reduce bitstream size when transforms change gradually. The chosen transformation may be included in metadata in the form of a vector indicating values of a two-dimentional perspective transform matrix. Coefficients can be sent differentially, as an error between previously received and new coefficients.Table C. 9: Syntax Element Definitions:fpt_format –specifies format of signaling in a structure. fpt_predict –indicates if prediction-based signaling is used. fpt_persp_mat_delta_coeff [rowIdx] [colIdx] –prediction error of coefficients of projection transform matrix. fpt_persp_mat_coeff [rowIdx] [colIdx] –coefficients of projection transform matrix.This embodiment introduces a way to signal transforms more efficiently through prediction. The key concept is that instead of always sending complete transform matrices, the encoder can optionally send just the differences (delta values) from a previous transform matrix.The syntax structure shown in Table C. 9 works as follows:1.A flag fpt_predict (1 bit) indicates whether prediction is used:i.If 0: A complete transform matrix is sentii. If 1: Delta values from previous matrix are sent2.Based on this flag:i.When using prediction (fpt_predict=1) :a) Sends fpt_persp_mat_delta_coeff [rowIdx] [colIdx] -the differences from previous matrix coefficientsii. When not using prediction (fpt_predict=0) :a) Sends fpt_persp_mat_coeff [rowIdx] [colIdx] -complete matrix coefficientsThis predictive approach can reduce bitrate when consecutive frames or GOPs use similar transforms, as sending small delta values typically requires fewer bits than sending complete new matrices.Example scenarios where this would be beneficial:3.When a video sequence maintains similar transforms across multiple frames;4.When transforms change gradually over time; and / or5.When only small adjustments to the previous transform are needed.The syntax allows switching between predictive and non-predictive modes on a per-use basis, providing flexibility while maintaining the potential for bitrate savings.

[0327] At least one example is detailed in Embodiment 4.2.3. In one or more embodiments of the disclosed method of video encoding in FIG. 5, the flag further comprises a prediction flag indicating whether transformation parameters are signaled directly or predicted from previously transmitted parameters. n one or more embodiments of the disclosed method of video encoding in FIG. 5, the perspective transformation comprises at least one of rotation and mirroring operations.

[0328] At least one example is detailed in Embodiment 4.2.3. In one or more embodiments of the disclosed method of video decoding in FIG. 6, the flag further comprises a prediction flag indicating whether transformation parameters are signaled directly or predicted from previously transmitted parameters. n one or more embodiments of the disclosed method of video decoding in FIG. 6, the perspective transformation comprises at least one of rotation and mirroring operations.

[0329] Embodiment #4.2.4: Picture corner coordinates

[0330] Instead of transmitting matrix coefficient, the bitstream can contain new coordinates for corners of transformed frame.

[0331] Decoded coordinates can be used to calculate the projection matrix. The equations for performing a perspective transformation on a 2D point with coordinates (x, y) involve a 3x3 transformation matrix and homogeneous coordinates. First, the 2D point (x, y) is converted into homogeneous coordinates by adding a third coordinate with a value of 1: (x, y, 1) .

[0332] The 3x3 perspective transform matrix may be:

[0333] The elements of this matrix (athrough h) control the specifics of the perspective transformation, such as scaling, rotation, translation, and perspective distortion.

[0334] The transformation matrix has to be multiplied by the homogeneous coordinates of the point:

[0335] With four pairs of points, i.e., all new coordinates for corners of transformed frame (x’, y’, 1) , it gives eight equations and unknowns (a, b, c, d, e, f, g, h) . To solve this system various methods can be used, e.g. Gaussian elimination or matrix inversion.

[0336] Syntax structure is illustrated in the following:Table C. 10: Syntax Element Definitions:fpt_pic_coord_x [coordIdx]  / fpt_pic_coord_y [coordIdx] –coordinates of new corners in transformed frame.The loop runs 4 times to specify coordinates for all four corners.For each corner:fpt_pic_coord_x [coordIdx] specifies the x-coordinate;fpt_pic_coord_y [coordIdx] specifies the y-coordinate.Both coordinates use ue (v) syntax -unsigned exponential-Golomb coded values.These corner coordinates can then be used to calculate the full transform matrix through a system of equations, as explained in the disclosure. Specifically:The system produces 8 equations (from 4 pairs of x, y coordinates) . These equations can be solved for the 8 unknown transform matrix coefficients (a, b, c, d, e, f, g, h) . Methods like Gaussian elimination or matrix inversion can be used to solve this system.This approach may be more intuitive than directly specifying matrix coefficients, while still allowing representation of any perspective transformation.

[0337] Embodiment #4.2.5: Predictive signaling of corner coordinates

[0338] This embodiment introduces a method for efficient signaling of corner coordinates by transmitting only the differences from previously used coordinates, rather than sending full coordinate values. This differential encoding reduces the bitrate required for signaling the transform.

[0339] The coordinates are encoded as follows:1. For the first frame using a transform, full corner coordinates are transmitted.2. For subsequent frames, only the differences from the previous frame's coordinates are sent.3. The decoder reconstructs the actual coordinates by adding the received differences to the previous frame's coordinates.4. These reconstructed coordinates are then used to calculate the projection matrix.

[0340] For example, consider two consecutive frames with the following corner coordinates:Frame 1 (full coordinates) :Top-left: (0, 0) ;Top-right: (1920, 0) ;Bottom-left: (0, 1080) ;Bottom-right: (1920, 1080) .Frame 2 coordinates:Top-left: (10, 5) ;Top-right: (1930, 5) ;Bottom-left: (10, 1085) ;Bottom-right: (1930, 1085) .Instead of sending the full coordinates for Frame 2, only the differences are transmitted:Top-left: (+10, +5) ;Top-right: (+10, +5) ;Bottom-left: (+10, +5) ;Bottom-right: (+10, +5) .

[0341] The syntax structure is defined as follows:Table C. 11: Syntax Element Definitions:fpt_format –specifies format of signaling in a structure.fpt_predict –indicates if prediction-based signaling is used.fpt_pic_coord_delta_x [coordIdx]  / fpt_pic_coord_delta_y [coordIdx] –prediction error of coordinates of new corners in transformed frame.fpt_pic_coord_x [coordIdx]  / fpt_pic_coord_y [coordIdx] –coordinates of new corners in transformed frame. If using prediction (fpt_predict=1) :Signals fpt_pic_coord_delta_x and fpt_pic_coord_delta_y for each corner.These represent differences from previous corner positions.If not using prediction (fpt_predict=0) :Signals fpt_pic_coord_x and fpt_pic_coord_y for each corner.These represent absolute corner positions.All coordinate values use unsigned exponential-Golomb coding (ue (v) ) , which is efficient for small values. This makes the predictive mode particularly efficient when transforms change only slightly between frames.

[0342] Embodiment #4.2.6: Pre-defined transforms in look-up tables

[0343] This embodiment introduces a highly efficient signaling method that uses pre-defined look-up tables (LUTs) containing commonly used transforms. Instead of sending complete transform matrices or corner coordinates, only an index into the LUT is transmitted.

[0344] Table C. 111: Example LUT of common transforms:

[0345] Encoder can select one of available sets of transforms from look-up table.Table C. 12:

[0346] Syntax Element Definitions:

[0347] fpt_persp_mat_lookup_idx: Index identifying which pre-defined transform to use.

[0348] This approach significantly reduces signaling overhead when the desired transforms match the pre-defined options. This represents a minimalist approach to transform signaling through the use of pre-defined look-up tables. The syntax structure consists of a single element, fpt_persp_mat_lookup_idx, which uses unsigned exponential-Golomb coding (ue (v) ) . This index value references a specific transform from a pre-defined set stored in look-up tables, eliminating the need to transmit complete transform parameters.

[0349] The advantages of this method include very low signaling overhead, as only one index value needs to be transmitted, and efficient representation of commonly used transforms such as standard rotations or mirrors.

[0350] At least one example is detailed in Embodiments 4.2.1, 4.2.2, 4.2.4, and 4.2.6. In one or more embodiments of the disclosed method of video encoding in FIG. 5, the flag indicates for the perspective transformation one of: a complete perspective transform matrix;a subset of perspective transformation parameters;corner coordinates of transformed frame; oran index to pre-defined transformations.

[0351] At least one example is detailed in Embodiments 4.2.1, 4.2.2, 4.2.4, and 4.2.6. In one or more embodiments of the disclosed method of video decoding in FIG. 6, the flag indicates for the perspective transformation one of:a complete perspective transform matrix;a subset of perspective transformation parameters;corner coordinates of transformed frame; oran index to pre-defined transformations.

[0352] Embodiment #4.2.7: Use of different representations and sending more than one structures

[0353] This embodiment enables flexible transform signaling by allowing multiple sets of transform representations to coexist in the bitstream. Bitstream can include more than one set of coefficients. If more sets are present, instead of sending new set for each frame, encoder can select one of available sets from look-up table or, e.g. from SPS.

[0354] The syntax structure is defined as:Table C. 13: Syntax Element Definitions:fpt_format [trnsIdx] –specifies format of signaling in a structure.fpt_predict [trnsIdx] –indicates if prediction-based signaling is used.fpt_reference_idx [trnsIdx] –indicates if reference-based signaling is used.fpt_pic_coord_delta_x [trnsIdx] [coordIdx]  / fpt_pic_coord_delta_y [trnsIdx] [coordIdx] –prediction error of coordinates of new corners in transformed frame.fpt_pic_coord_x [trnsIdx] [coordIdx]  / fpt_pic_coord_y [trnsIdx] [coordIdx] –coordinates of new corners in transformed frame.fpt_persp_mat_coeff [trnsIdx] [rowIdx] [colIdx] –coefficients of projection transform matrix.The flex_pic_trns_struct (trnsIdx) syntax allows specifying different formats for transform representation. The structure first signals fpt_format [trnsIdx] , a 1-bit flag that determines how the transform will be represented:When fpt_format [trnsIdx] is 1:A prediction flag fpt_predict [trnsIdx] indicates whether prediction is used.If prediction is used, delta coordinates are signaled for 4 corners.If prediction is not used, absolute coordinates are signaled for 4 corners.When fpt_format [trnsIdx] is 0:The transform is represented directly using matrix coefficients.A 3x3 matrix of coefficients is signaled (fpt_persp_mat_coeff) .All coordinate values use unsigned exponential-Golomb coding (ue (v) ) , while matrix coefficients use 64-bit floating point format (f (64) ) .This structure provides flexibility by allowing:1. Different formats of transform representation;2. Choice between coordinate-based and matrix-based signaling; and / orOptional use of prediction for coordinate-based representation.

[0355] Embodiment #5: Management of Reference Picture Transformations

[0356] This embodiment addresses how to efficiently handle transformed reference pictures in video coding while maintaining effective prediction capabilities and minimizing computational overhead. The fundamental challenge is that reference pictures used for prediction, along with their corresponding motion information, must be properly aligned with the transform of the currently coded picture to enable effective motion compensation and maintain high coding efficiency. However, this alignment requirement must be balanced against the computational cost of performing transform operations.

[0357] A key insight of this embodiment is that an embodiment of the disclosure can optimize the overall system performance by carefully selecting a "target transform state" for storing reference pictures in the decoder's reconstructed picture buffer. This target state is chosen to minimize the total number of transform operations that need to be performed during the encoding and decoding process. When choosing this target state, the encoder and / or the decoder must consider several types of transform operations: transforms needed when storing pictures / frames in the reconstructed picture buffer, transforms required when reading pictures / frames from the reconstructed picture buffer, transforms applied to motion vectors and other metadata, and transforms needed to generate output pictures / frames.

[0358] The specific forward and inverse transform operations themselves are performed using the methods detailed in the description respectively. However, the strategy for when and how to apply these transforms can significantly impact both coding efficiency and computational complexity. For example, if the system expects many frames within a GOP to use the same transform, it may be beneficial to store reference pictures / reconstructed frames in that transformed state. Conversely, if transforms vary frequently, it might be more efficient to store pictures / frames in their original orientation.

[0359] The selection of the optimal strategy depends on several key factors. First, the encoder and / or the decoder must consider the expected pattern of transforms within a GOP -will most frames use the same transform, or will transforms vary frequently? Second, the encoder and / or the decoder must account for hardware capabilities and constraints of the target platform. Third, the encoder and / or the decoder need to consider latency requirements, particularly for real-time applications. Finally, memory bandwidth considerations play an important role, as different strategies may require different patterns of memory access.

[0360] In the following subsections, the disclosure presents three distinct strategies for managing these transforms. Each strategy offers different tradeoffs between computational complexity, memory usage, and coding efficiency, making them suitable for different usage scenarios.

[0361] Embodiment 5.1: Inverse Transform Before Reference Picture Buffer

[0362] This embodiment describes a strategy where reference pictures / reconstructed frame and their associated motion information are stored in their original, non-transformed state in the reconstructed picture buffer. Under this approach, whenever a new picture / frame is reconstructed and needs to be stored as a reference, the decoder first applies an inverse transform to restore it to its original orientation, effectively removing any transform that was applied during the coding process. The same inverse transformation is applied to all associated motion information for consistency.

[0363] When the decoder needs to use a reference picture / reconstructed frame for prediction, it applies the appropriate forward transform to align the reference picture / reconstructed frame with the transform being used for the current picture / frame being decoded. For example, if the current picture / frame uses a 90-degree rotation transform, the decoder would apply this same transform to the reference picture / reconstructed frame read from the reconstructed picture buffer before using it for prediction.

[0364] This strategy is particularly effective in scenarios where:-Different pictures / frames within a GOP use a variety of different transforms;-Transform patterns are irregular or difficult to predict;-Memory bandwidth costs of additional transforms are less critical than memory storage requirements;-The decoder needs to output pictures / frames in their original orientation.

[0365] A key advantage of this approach is its simplicity -by always storing pictures / frames in their original orientation, the embodiment establishes a consistent baseline state from which any required transform can be applied. Furthermore, since decoded pictures / frames typically need to be output in their original orientation anyway, the inverse transform operation isn't purely overhead. This approach may require more transform operations during the prediction process, but it simplifies the management of reference pictures / reconstructed frames and ensures that output pictures / frames are readily available in their correct orientation.

[0366] For implementation, the decode process may perform the following:1. Decode the current picture / frame using its specified transform;2. Apply inverse transform to the reconstructed picture / frame;3. Store the inverse-transformed picture / frame in the reconstructed picture buffer; and4. When needed for prediction, apply transform of the current picture / frame to the reference picture / reconstructed frame.

[0367] This structured approach ensures consistent handling of transforms while maintaining decoded picture quality and prediction efficiency.

[0368] At least one example is detailed in Embodiment 5.1. In one or more embodiments of the disclosed method of video encoding in FIG. 5, the method further comprises:transforming reconstructed frames and associated motion information stored in a reconstructed picture buffer to align with a transformation applied to a currently coded frame, wherein transforming of the reconstructed frames enables motion compensation using the reconstructed frames.

[0369] In one or more embodiments of the disclosed method of video encoding in FIG. 5, the transforming the reconstructed frames and associated motion information comprises:applying an inverse transformation to each frame after reconstruction and before storage in the reconstructed picture buffer to generate an inversely transformed reconstructed frame, wherein the inverse transformation removes effects of the perspective transformation that was applied during coding of the frame;applying the inverse transformation to motion information associated with the reconstructed frame;storing the inversely transformed reconstructed frame and motion information in the reconstructed picture buffer; and when using a stored reconstructed frame for prediction of a current frame being coded, applying the perspective transformation to align the reconstructed frame with a transformation of the current frame.

[0370] At least one example is detailed in Embodiment 5.1. In one or more embodiments of the disclosed method of video decoding in FIG. 6, the method further comprises:transforming reconstructed frames and associated motion information stored in a reconstructed picture buffer to align with a transformation applied to a currently coded frame, wherein transforming of the reconstructed frames enables motion compensation using the reconstructed frames.

[0371] In one or more embodiments of the disclosed method of video decoding in FIG. 6, the transforming the reconstructed frames and associated motion information comprises:applying an inverse transformation to each frame after reconstruction and before storage in the reconstructed picture buffer to generate an inversely transformed reconstructed frame, wherein the inverse transformation removes effects of a forward transformation that was applied during coding of the frame;applying the inverse transformation to motion information associated with the reconstructed frame;storing the inversely transformed reconstructed frame and motion information in the reconstructed picture buffer; and when using a stored reconstructed frame for prediction of a current frame being coded, applying the perspective transformation to align the reconstructed frame with a transformation of the current frame.

[0372] Embodiment 5.2: Remap to match the first frame of GOP

[0373] The embodiment provides an example of aligning reference pictures / reconstructed frames with GOP's first frame transform. This embodiment presents a strategy where all reference pictures / reconstructed frames within a GOP are stored using the same transform that was applied to the first picture / frame (typically an I-frame) in that GOP. This transform becomes the "target transform" for the entire GOP, creating a consistent transformed state for storage of reference pictures / reconstructed frames.

[0374] When storing a new reference picture / reconstructed frame in the reconstructed picture buffer, the decoder applies a combined transform that accounts for both the original transform of the new reference picture / reconstructed frame and the target transform. This combined transform is computed by concatenating the inverse of the original transform of the new reference picture / reconstructed frame with the target transform, which can be efficiently implemented through matrix multiplication of the corresponding transform matrices. For example, if a picture / frame was encoded with a 90-degree rotation but the target transform is a horizontal flip, the combined transform would first undo the 90-degree rotation and then apply the horizontal flip.

[0375] A key optimization in this approach occurs when the transform of the new reference picture / reconstructed frame matches the target transform -in this case, no additional transformation is needed before storage since the combined transform becomes an identity operation. This scenario is particularly common when the encoder enforces the same transform across all or most pictures / frames in a GOP.

[0376] The handling of decoded picture / frame output follows two paths:1. For immediate output after decoding: Apply the inverse of the original transform of the new reference picture / reconstructed frame.2. For output from reconstructed picture buffer: Apply the inverse of the target transform.

[0377] This approach offers significant computational advantages when:1. Many pictures / frames within a GOP share the same transform;2. The encoder enforces consistent transforms within GOPs;3. Memory bandwidth for transform operations is a critical constraint; and / or4. Reference picture / reconstructed frame access patterns are predictable.

[0378] For implementation, the decode process may perform the following:1. Decode the current picture / frame using its specified transform2. Compute and apply the combined transform for reconstructed picture buffer storage3. When needed for prediction, apply transform alignment only if transform of the current picture / frame differs from target4. For output, apply appropriate inverse transform based on output path

[0379] This strategy is particularly suitable in applications where transform consistency within GOPs can be maintained, as it minimizes the number of required transform operations while maintaining high coding efficiency.

[0380] At least one example is detailed in Embodiment 5.2. In one or more embodiments of the disclosed method of video encoding in FIG. 5, the transforming the reconstructed frames and associated motion information comprises: determining a target transformation based on a transformation applied to a first frame in the GOP;for each subsequent frame in the GOP:applying a transformation to the subsequent frame and associated motion information of the subsequent frame based on an inverse transformation of the subsequent frame and the target transformation to generate transformed frame and motion information; andstoring the transformed frame and motion information in a reconstructed picture buffer.

[0381] In one or more embodiments of the disclosed method of video encoding in FIG. 5, when the transformation applied to a subsequent frame matches the target transformation, the transformation applied to the subsequent frame results in an identity transform requiring no additional transformation operations before storing the subsequent frame in the reconstructed picture buffer.

[0382] At least one example is detailed in Embodiment 5.2. In one or more embodiments of the disclosed method of video decoding in FIG. 6, the transforming the reconstructed frames and associated motion information comprises: determining a target transformation based on a transformation applied to a first frame in the GOP;for each subsequent frame in the GOP:applying a transformation to the subsequent frame and associated motion information of the subsequent frame based on an inverse transformation of the subsequent frame and the target transformation to generate a transformed frame and motion information; andstoring the transformed frame and motion information in a reconstructed picture buffer.

[0383] In one or more embodiments of the disclosed method of video decoding in FIG. 6, when the transformation applied to a subsequent frame matches the target transformation, the transformation applied to the subsequent frame results in an identity transform requiring no additional transformation operations before storing the subsequent frame in the reconstructed picture buffer.

[0384] Embodiment 5.3: Platform-dependent Transform Management

[0385] This embodiment describes an adaptive approach that selects the optimal transform strategy for the reference picture / reconstructed frame based on the specific characteristics and constraints of the target platform. Different hardware architectures and implementations exhibit varying performance characteristics when executing transform operations, making a one-size-fits-all approach suboptimal.

[0386] For example, GPU implementations excel at parallel processing and can efficiently handle batch transforms, but may incur additional memory transfer overhead. In contrast, dedicated hardware accelerators might perform transforms very quickly but have limited flexibility in transform types. DSP implementations often provide a balance of flexibility and efficiency but may have specific timing constraints that must be met. The following platform-specific considerations drive the strategy selection:

[0387] Software Implementation Considerations:

[0388] When implementing on software platforms, several key factors influence the optimal transform strategy. The system must carefully manage cache utilization and memory access patterns to minimize cache misses and ensure efficient data retrieval. The availability of SIMD or vector instructions can dramatically accelerate transform operations when properly utilized. Thread scheduling and parallel processing capabilities also play a crucial role, as different transform strategies may be more or less amenable to parallelization. Additionally, the software implementation must balance memory bandwidth usage against computational complexity, as different platforms may have different bottlenecks.

[0389] Hardware Implementation Considerations:

[0390] For hardware implementations, the considerations shift toward physical constraints and resource utilization. The available hardware resources for dedicated transform units directly impact how many concurrent operations can be performed. Pipeline scheduling constraints affect the timing and ordering of transform operations within the processing pipeline. Memory interface bandwidth becomes particularly critical as it can bottleneck the entire system if not properly managed. Power consumption requirements also play a vital role in hardware implementations, potentially limiting the complexity or frequency of transform operations.

[0391] GPU-Based Implementation Considerations:

[0392] GPU-based implementations present their own unique set of considerations due to their highly parallel architecture. The overhead of launching GPU kernels must be weighed against the actual computation time, as frequent small transforms might perform worse than batched operations. Memory transfer costs between CPU and GPU can become a significant factor, particularly when reference pictures / reconstructed frames need to move between different memory spaces. The complexity of shader programs implementing different transform types affects both development effort and runtime performance. Finally, effective utilization of texture memory can significantly impact overall system performance, as GPUs are optimized for specific memory access patterns common in graphics workloads.

[0393] By carefully considering these platform-specific characteristics, the decoder can implement the most efficient transform strategy for the target hardware while maintaining compliance with the video coding requirements. This platform-aware approach ensures optimal performance across a wide range of deployment scenarios.

[0394] Based on these platform-specific characteristics, the decoder can dynamically choose between:

[0395] 1. The non-remapped strategy (better for platforms with fast transform operations) .

[0396] 2. The GOP-aligned strategy (better for platforms with memory constraints) .

[0397] 3. A hybrid approach that switches between strategies based on content type and platform load.

[0398] This platform-aware approach ensures optimal performance across different decoder implementations while maintaining compliance with the core transform requirements of the video coding system.

[0399] At least one example is detailed in Embodiment 5.3. In one or more embodiments of the disclosed method of video encoding in FIG. 5, the method further comprises:for outputting the first frame, applying an inverse transformation that is:an inverse of a forward transformation used for coding the first frame when outputting directly after coding; or an inverse of the target transformation when outputting the first frame from the reconstructed picture buffer.

[0400] In one or more embodiments of the disclosed method of video encoding in FIG. 5, a strategy for transforming and storing reconstructed frames is selected based on at least one of:computational characteristics of a target decoder platform;latency requirements of the target decoder platform; orrelative computational costs of forward and inverse transformations on the target decoder platform.

[0401] At least one example is detailed in Embodiment 5.3. In one or more embodiments of the disclosed method of video decoding in FIG. 6, the method further comprises:for outputting the first frame, applying an inverse transformation that is:an inverse of a forward transformation used for coding the first frame when outputting directly after coding; or an inverse of the target transformation when outputting the first frame from the reconstructed picture buffer.

[0402] In one or more embodiments of the disclosed method of video decoding in FIG. 6, a strategy for transforming and storing reconstructed frames is selected based on at least one of:computational characteristics of a target decoder platform;latency requirements of the target decoder platform; orrelative computational costs of forward and inverse transformations on the target decoder platform.

[0403] Embodiment #6 : Image inverse transformation

[0404] Embodiment #6.1: Full transformation

[0405] This embodiment details the comprehensive process of inverse transformation that restores transformed pictures / frames to their original orientation. The key insight is that inverse transformation follows the same mathematical framework as forward transformation, but uses the inverse of the original perspective transform matrix.

[0406] The process begins with the transformed input frame and its associated perspective transform matrix. To perform the inverse transformation, the method comprises first computing the inverse of the original 3x3 perspective transform matrix. This inverted matrix serves as our inverse transform operator. The transformed pixels from the input frame are then processed through this inverse transform operator using homogeneous coordinates, just as in the forward transform process.

[0407] For example, if a frame was transformed using a 90-degree rotation matrix during encoding, the inverse transform would apply the inverse of this rotation matrix (effectively a -90-degree rotation) to restore the frame to its original orientation. Similarly, if a frame underwent a complex perspective transformation involving multiple operations, the inverse transform would apply these operations in reverse order using the inverted transform matrix.

[0408] Mathematically, this can be expressed using homogeneous coordinates and matrix operations, which will be detailed in the following sections. The result of this process is a frame restored to its original orientation, enabling proper display output and serving as a reference for future frames when needed.

[0409] The equations for performing an inverse perspective transformation on a 2D point with coordinates (x_transformed, y_transformed) involve a 3x3 transformation matrix and homogeneous coordinates. First, the 2D point (x_transformed , y_transformed) is converted into homogeneous coordinates by adding a third coordinate with a value of 1: (x_transformed, y_transformed, 1) .

[0410] The inverted 3x3 perspective transform matrix:

[0411] The inverted transformation matrix has to be multiplied by the homogeneous coordinates of the point:

[0412] This results in new homogeneous coordinates (x', y', w) . The first two coordinates (x' and y') have to be divided by the third coordinate (w) to get the final transformed 2D point:

[0413] Therefore, the equations for performing an inverse perspective transformation on a 2D point (x_transformed, y_transformed) are:x = (a′*xtransformed + b′*ytransformed + c′)  /  (g′*xtransformed + h′*ytransformed + 1)     (19)y = (d′*xtransformed + e′*ytransformed + f′)  /  (g′*xtransformed + h′*ytransformed + 1)       (20)

[0414] Embodiment #6.2: Subset of full transformation

[0415] In one embodiment, the perspective matrix can be restricted to support only a subset of possible transformations by limiting both the number of elements and their values. Specifically, this involves simplifying the equations from embodiments by setting unused matrix elements to zero.

[0416] This approach is particularly valuable for hardware implementations or in scenarios where computational resources are limited, as it provides a favorable balance between functionality and implementation complexity.

[0417] Embodiment #7 Inpainting of transformed image

[0418] Interpolation

[0419] The transformed image may contain empty pixels, i.e. pixels with no value Such pixels may be inpainted using the information from the neighborhood. One of the solutions is to use the zeroth-order interpolation, i.e. to copy the value from the left neighbor (vx-1, y) or, if such a value is unavailable, to copy the value from the top neighbor (vx, y-1) :

[0420] Another possible algorithm may be a first-order interpolation, where the value of an empty pixel is calculated as a weighted average of values from the closest non-empty pixel at the left and the closest non-empty pixel at the right: where l and r are horizontal positions of the closest non-empty pixel at the left and the closest non-empty pixel at the right, respectively.

[0421] Iterative approach

[0422] A third possible algorithm may be an iterative algorithm, where empty pixels of image T are filled with an average of non-empty pixels from their neighborhood: resulting in creation of image T′. Then, image T is replaced by image T′, and the algorithm is run once again. It is repeated until there are no empty pixels within image T.

[0423] With reference to FIG. 17, the embodiment of the disclosure also provides a chip 70 that may correspond to an encoder in the embodiments of the disclosure. The chip 70 may implement a corresponding process realized by the encoder (i.e., video encoding system 110) in various methods of the embodiments of the disclosure. The chip 70 includes a processor 71, and the processor 71 may call and run a computer program from memory to implement the methods in the embodiments of the present application.

[0424] Optionally, the chip 70 may also include a memory 72. In particular, the processor 71 may call and run the computer program from the memory 72 to implement the methods in the embodiments of the present application.

[0425] Moreover, the memory 72 may be a separate device from the processor 71 or may be integrated into the processor 71.

[0426] Optionally, the chip 70 may further include an input interface 73. Note that the processor 71 may control the input interface 73 to communicate with other devices or chips, specifically, to obtain messages or data sent by other devices or chips.

[0427] Optionally, the chip 70 may further include an output interface 74. Note that the processor 71 may control the output interface 74 to communicate with other devices or chips, specifically, to output messages or data to other devices or chips.

[0428] With reference to FIG. 18, the embodiment of the disclosure also provides another chip 80 that may correspond to a decoder (i.e., video decoding system 120) in the description, and the chip 80 may implement the corresponding processes implemented by the decoder in the various methods of the embodiments of the disclosure. The chip 80 includes a processor 81, and the processor 81 may call and run a computer program from the memory 82 to implement the methods in the embodiments of the present application.

[0429] Optionally, the chip 80 may further include a memory 82. In particular, the processor 81 may call and run the computer program from the memory 82 to implement the methods in the embodiments of the present application.

[0430] Wherein the memory 82 may be a separate device from the processor 81 or may be integrated into the processor 81.

[0431] Optionally, the chip 80 may also include an input interface 83. In particular, the processor 81 may control the input interface 83 to communicate with other devices or chips, specifically, to obtain messages or data sent by other devices or chips.

[0432] Optionally, the chip may further include an output interface 84. In particular, the processor 81 may control the output interface 84 to communicate with other devices or chips, specifically, to output messages or data to other devices or chips.

[0433] The disclosed method may be programmed as computer executable instructions stored in non-transitory computer readable medium. The non-transitory computer readable medium, when loaded to a computer, directs a processor of the computer to execute the disclosed method.

[0434] The non-transitory computer readable medium may comprise at least one from a group consisting of: a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a Read Only Memory, a Programmable Read Only Memory, an Erasable Programmable Read Only Memory, EPROM, an Electrically Erasable Programmable Read Only Memory and a Flash memory.

[0435] Transform Selection Efficiency

[0436] The FPT system performs transform selection as a pre-encoding operation on the whole picture / frame. By avoiding additional in-loop optimizations and introducing no new coding modes to the computational graph, this approach maintains low complexity and low latency while reducing the encoder's computational burden.

[0437] Minimal Codec Modifications

[0438] The system requires minimal changes to existing encoder and decoder architectures. By maintaining reference pictures / reconstructed frame in their non-transformed state within the reconstructed picture buffer, an embodiment of the disclosed method only needs to apply inverse transforms to pictures / frames before buffer insertion. This approach ensures consistency between differently encoded images while simplifying implementation.

[0439] The system also preserves existing motion vector search mechanisms. Since compared frames are aligned through the same projection transform, no modifications to motion estimation are needed. This design choice, combined with the absence of additional in-loop optimizations and coding modes, makes the system highly compatible with existing codec frameworks.

[0440] Enhanced prediction accuracy through transform-based reordering

[0441] The invention enables more efficient prediction by applying perspective transforms to modify the processing order of encoded images. This includes rotations, mirroring, and other transformations that allow blocks to access previously inaccessible reference samples. For example, after vertical shearing transformation, blocks can utilize reference samples that were originally positioned to their right -samples that would normally be unavailable in standard raster-scan processing order.

[0442] Improved coding efficiency through global transformations

[0443] The proposed method achieves coding gains through two main mechanisms:

[0444] First, by transforming the entire input image, it effectively changes the processing order in a way that improves intra prediction accuracy. This allows better utilization of spatial correlations in the image content.

[0445] Second, when applied to inter prediction, the method can efficiently handle global motion patterns. For instance, if consecutive frames contain similar content with a consistent global displacement, encoding this as a single frame-level transform parameter is more efficient than encoding individual motion vectors for each block. This reduces the bitrate required for motion information while maintaining prediction quality.

[0446] Experimental validation

[0447] The effectiveness of the proposed method was evaluated through comprehensive testing under AI CTC conditions, using ECM12.1 as the reference anchor. Two distinct implementation approaches were tested to assess both the theoretical potential and practical performance of the method.

[0448] The first implementation employs an exhaustive "a posteriori" search strategy that evaluates all possible transform combinations: four rotations (0°, 90°, 180°, and 270°) and two mirroring options (vertical and horizontal) . While this approach requires 8 times longer encoding duration, making it impractical for real-world applications, it establishes the theoretical maximum gains achievable through these transformations.

[0449] The second implementation utilizes the fast automatic transform selection algorithm. This practical approach maintains reasonable encoding complexity while delivering substantial coding efficiency improvements, particularly for high-resolution content. With reference to the following table, for Class A2 sequences (4K resolution) , the fast implementation achieved an average bitrate reduction of -0.53%, with peak improvements reaching -1.09%for the ParkRunning sequence. These results approach the theoretical maximum gains of -0.76%demonstrated by the exhaustive search implementation.

[0450] This testing demonstrates that the proposed method can deliver meaningful coding efficiency improvements with a practical implementation that avoids the computational burden of exhaustive transform evaluation.Table D: The results of encoding for ECM 12.1.

[0451] The disclosed method may be programmed as a computer program product that causes a computer to execute the disclosed method.

[0452] The disclosed method may be programmed as a computer program that causes a computer to execute the disclosed method.

[0453] While the present disclosure has been described in connection with what is considered the most practical and preferred embodiments, it is understood that the present disclosure is not limited to the disclosed embodiments but is intended to cover various arrangements made without departing from the scope of the broadest interpretation of the appended claims.

Claims

1.A method of video decoding, comprising:receiving a bitstream from encoder side;decoding the bitstream to generate a decoded frame;determining a perspective transformation for the decoded frame; andperform an inverse perspective transformation to the decoded frame to generate an inverse transformed frame.2.The method of claim 1, wherein determining the perspective transformation for the decoded frame comprises:decoding a flag which indicating a transformation from the bitstream, orderiving the perspective transformation from image content of the decoded frame.3.[Rectified under Rule 91, 11.06.2025]The method of claim 2, wherein deriving the perspective transformation from the image content of the decoded frame comprising:analyzing high-frequency content distribution along a left margin and a right margin of the decoded frame.4.[Rectified under Rule 91, 11.06.2025]The method of claim 3, wherein analyzing high-frequency content distribution comprises:accumulating values quantifying presence of high-frequency content in N first columns and N last columns of the decoded frame, wherein N is a positive integer.5.[Rectified under Rule 91, 11.06.2025]The method of claim 4, wherein N is determined based on image resolution of the decoded frame or a size of the decoded frame.6.[Rectified under Rule 91, 11.06.2025]The method of claim 3, wherein deriving the perspective transformation from the image content of the decoded frame comprises:determining that the perspective transformation is 180-degree rotation when the left margin of the decoded frame has more high-frequency content than the right margin of the decoded frame.7.[Rectified under Rule 91, 11.06.2025]The method of claim 2, wherein deriving the perspective transformation from the image content of the decoded frame further comprises:selecting portions of the decoded frame for analysis, wherein the portions comprise at least one of:corner regions of the decoded frame,border regions of the decoded frame, ordownsampled version of the decoded frame.8.[Rectified under Rule 91, 11.06.2025]The method of claim 7, wherein the portions of the decoded frame for analysis are determined based on content type in the decoded frame.9.[Rectified under Rule 91, 11.06.2025]The method of claim 8, whereinfor landscape content in the decoded frame, selecting the portions of the decoded frame for analysis according to a first scheme; andfor portrait content in the decoded frame, selecting the portions of the decoded frame for analysis according to a second scheme.10.[Rectified under Rule 91, 11.06.2025]The method of claim 2, wherein the flag is signaled at one of:sequence level in a sequence parameter set;group of pictures level in a picture parameter set;picture level in a picture header; orslice level in a slice header.11.[Rectified under Rule 91, 11.06.2025]The method of claim 10, whereinwhen signaled at the sequence level, the flag indicates perspective transformation enabling or disabling for an entire sequence;when signaled at the group of pictures level, the flag indicates perspective transformation enabling or disabling for a group of pictures;when signaled at the picture level, the flag indicates perspective transformation enabling or disabling for individual pictures; orwhen signaled at the slice level, the flag indicates perspective transformation enabling or disabling for individual slices.12.[Rectified under Rule 91, 11.06.2025]The method of claim 10, wherein the flag indicates for the perspective transformation one of:a complete perspective transform matrix;a subset of perspective transformation parameters;corner coordinates of transformed frame; oran index to pre-defined transformations.13.[Rectified under Rule 91, 11.06.2025]The method of claim 10, wherein the flag further comprises a prediction flag indicating whether transformation parameters are signaled directly or predicted from previously transmitted parameters.14.The method of claim 1, wherein the perspective transformation comprises at least one of rotation and mirroring operations.15.[Rectified under Rule 91, 11.06.2025]The method of claim 1, wherein determining the perspective transformation comprises:detecting edges oriented at a lower left to upper right direction in the decoded frame to obtain a first result;detecting edges oriented at a lower right to upper left direction in the decoded frame to obtain a second result;comparing strength of detected edges by comparing sums of absolute values from the first result and sums of absolute values from the second result; anddetermining the transformation based on the comparing result.16.[Rectified under Rule 91, 11.06.2025]The method of claim 15, wherein determining the perspective transformation comprises:determining that the perspective transformation comprises horizontal mirroring based on a comparison between the sums of absolute values from the first result and the sums of absolute values from the second result.17.[Rectified under Rule 91, 11.06.2025]The method of claim 15, wherein determining the perspective transformation comprises:determining that the perspective transformation comprises vertical mirroring based on a comparison between the sums of absolute values from the first result and the sums of absolute values from the second result.18.[Rectified under Rule 91, 11.06.2025]The method of claim 1, wherein the decoded frame is a first frame in a group of pictures (GOP) , when determining a perspective transformation for the first frame, applying an inverse perspective transformation to the first frame for remaining frames in the GOP.19.[Rectified under Rule 91, 11.06.2025]The method of claim 18, further comprising:determining the perspective transformation before fully decoding each frame based on a transformation determined for a previously decoded frame having a closest presentation order count (POC) or timestamp.20.[Rectified under Rule 91, 11.06.2025]The method of claim 1, further comprising:transforming reconstructed frames and associated motion information stored in a reconstructed picture buffer to align with a transformation applied to a currently coded frame, wherein transforming of the reconstructed frames enables motion compensation using the reconstructed frames.21.[Rectified under Rule 91, 11.06.2025]The method of claim 20, wherein the transforming the reconstructed frames and associated motion information comprises:applying an inverse transformation to each frame after reconstruction and before storage in the reconstructed picture buffer to generate an inversely transformed reconstructed frame, wherein the inverse transformation removes effects of a forward transformation that was applied during coding of the frame;applying the inverse transformation to motion information associated with the reconstructed frame;storing the inversely transformed reconstructed frame and motion information in the reconstructed picture buffer; andwhen using a stored reconstructed frame for prediction of a current frame being coded, applying the perspective transformation to align the reconstructed frame with a transformation of the current frame.22.[Rectified under Rule 91, 11.06.2025]The method of claim 20, wherein the transforming the reconstructed frames and associated motion information comprises:determining a target transformation based on a transformation applied to a first frame in the GOP;for each subsequent frame in the GOP:applying a transformation to the subsequent frame and associated motion information of the subsequent frame based on an inverse transformation of the subsequent frame and the target transformation to generate a transformed frame and motion information; andstoring the transformed frame and motion information in a reconstructed picture buffer.23.[Rectified under Rule 91, 11.06.2025]The method of claim 22, whereinwhen the transformation applied to a subsequent frame matches the target transformation, the transformation applied to the subsequent frame results in an identity transform requiring no additional transformation operations before storing the subsequent frame in the reconstructed picture buffer.24.[Rectified under Rule 91, 11.06.2025]The method of claim 22, further comprising:for outputting the first frame, applying an inverse transformation that is:an inverse of a forward transformation used for coding the first frame when outputting directly after coding; oran inverse of the target transformation when outputting the first frame from the reconstructed picture buffer.25.[Rectified under Rule 91, 11.06.2025]The method of claim 20, wherein a strategy for transforming and storing reconstructed frames is selected based on at least one of:computational characteristics of a target decoder platform;latency requirements of the target decoder platform; orrelative computational costs of forward and inverse transformations on the target decoder platform.26.[Rectified under Rule 91, 11.06.2025]The method of claim 1, wherein determining the perspective transformation comprises:obtaining motion information between a current frame and reconstructed frames;calculating motion vector prediction errors for different candidate transformations; andselecting one candidate transformation that minimizes the motion vector prediction error as the perspective transformation.27.[Rectified under Rule 91, 11.06.2025]The method of claim 26, wherein obtaining motion information comprises one of:processing an optical flow field for selected reconstructed frames; oranalyzing motion vectors obtained for a coarse grid of image areas.28.[Rectified under Rule 91, 11.06.2025]The method of claim 26, wherein calculating motion vector prediction errors comprises:predicting motion information for each consecutive sample or block in codec scanning order; andcomparing the prediction with obtained motion information using a cost function.29.[Rectified under Rule 91, 11.06.2025]The method of claim 1, wherein empty pixels in the inverse transformed frame are filled using at least one pixel filling method from neighboring non-empty pixels;the inverse transformed frame is obtained from the perspective transformation of the decoded frame; andthe at least one pixel filling method is one of interpolation from neighboring non-empty pixels, extrapolation from neighboring non-empty pixels, or machine learning-based in-painting.30.A decoder comprising:a processor configured to call and run a computer program stored in a memory, to cause a device in which the processor is installed to execute the method of any of claims 1 to 29.31.A chip, comprising:a processor, configured to call and run a computer program stored in a memory, to cause a device in which the chip is installed to execute the method of any of claims 1 to 29.32.A computer-readable storage medium, in which a computer program is stored, wherein the computer program causes a computer to execute the method of any of claims 1 to 29.33.A computer program product, comprising a computer program, wherein the computer program causes a computer to execute the method of any of claims 1 to 29.34.A computer program, wherein the computer program causes a computer to execute the method of any of claims 1 to 29.35.A method of video encoding comprising:receiving a video signal comprising a frame;determining a perspective transformation for the frame;perform the determined perspective transformation to the frame to generate a forward transformed frame;encoding the forward transformed frame to generate a coded frame; andtransmitting a bitstream comprising the coded frame to a decoder side.36.The method of claim 35, wherein determining the perspective transformation for the frame comprising:deriving the perspective transformation from image content of the frame.37.[Rectified under Rule 91, 11.06.2025]The method of claim 36, wherein deriving the perspective transformation from the image content of the frame comprises:analyzing high-frequency content distribution along a left margin and a right margin of the frame.38.[Rectified under Rule 91, 11.06.2025]The method of claim 37, wherein analyzing high-frequency content distribution comprises:accumulating values quantifying presence of high-frequency content in N first columns and N last columns of the frame, wherein N is a positive integer.39.[Rectified under Rule 91, 11.06.2025]The method of claim 38, wherein N is determined based on image resolution of the frame or a size of the frame.40.[Rectified under Rule 91, 11.06.2025]The method of claim 37, wherein deriving the perspective transformation from the image content of the frame comprises:determining that the perspective transformation is 180-degree rotation when the left margin of the frame has more high-frequency content than the right margin of the frame.41.[Rectified under Rule 91, 11.06.2025]The method of claim 36, wherein deriving the perspective transformation from the image content of the frame further comprises:selecting portions of the frame for analysis, wherein the portions comprise at least one of:corner regions of the frame,border regions of the frame, ordownsampled version of the frame.42.[Rectified under Rule 91, 11.06.2025]The method of claim 41, wherein the portions of the frame for analysis are determined based on content type in the frame.43.[Rectified under Rule 91, 11.06.2025]The method of claim 42, whereinfor landscape content in the frame, selecting the portions of the frame for analysis according to a first scheme; andfor portrait content in the frame, selecting the portions of the frame for analysis according to a second scheme.44.[Rectified under Rule 91, 11.06.2025]The method of claim 36, wherein the flag is signaled at one of:sequence level in a sequence parameter set;group of pictures level in a picture parameter set;picture level in a picture header; orslice level in a slice header.45.[Rectified under Rule 91, 11.06.2025]The method of claim 44, whereinwhen signaled at the sequence level, the flag indicates perspective transformation enabling or disabling for an entire sequence;when signaled at the group of pictures level, the flag indicates perspective transformation enabling or disabling for a group of pictures;when signaled at the picture level, the flag indicates perspective transformation enabling or disabling for individual pictures; orwhen signaled at the slice level, the flag indicates perspective transformation enabling or disabling for individual slices.46.[Rectified under Rule 91, 11.06.2025]The method of claim 44, wherein the flag indicates for the perspective transformation one of:a complete perspective transform matrix;a subset of perspective transformation parameters;corner coordinates of transformed frame; oran index to pre-defined transformations.47.[Rectified under Rule 91, 11.06.2025]The method of claim 44, wherein the flag further comprises a prediction flag indicating whether transformation parameters are signaled directly or predicted from previously transmitted parameters.48.The method of claim 35, wherein the perspective transformation comprises at least one of rotation and mirroring operations.49.[Rectified under Rule 91, 11.06.2025]The method of claim 35, wherein determining the perspective transformation comprises:detecting edges oriented at a lower left to upper right direction in the frame to obtain a first result;detecting edges oriented at a lower right to upper left direction in the frame to obtain a second result;comparing strength of detected edges by comparing sums of absolute values from the first result and sums of absolute values from the second result; anddetermining the transformation based on the comparing result.50.[Rectified under Rule 91, 11.06.2025]The method of claim 49, wherein determining the perspective transformation comprises:determining that the perspective transformation comprises horizontal mirroring based on a comparison between the sums of absolute values from the first result and the sums of absolute values from the second result.51.[Rectified under Rule 91, 11.06.2025]The method of claim 49, wherein determining the perspective transformation comprises:determining that the perspective transformation comprises vertical mirroring based on a comparison between the sums of absolute values from the first result and the sums of absolute values from the second result.52.[Rectified under Rule 91, 11.06.2025]The method of claim 35, wherein the frame is a first frame in a group of pictures (GOP) , when determining a perspective transformation for the first frame, applying an inverse perspective transformation to the first frame for remaining frames in the GOP.53.[Rectified under Rule 91, 11.06.2025]The method of claim 35, wherein determining the perspective transformation comprises:encoding each candidate transformation of an image area of the frame;measuring a compression rate and a visual quality metric for each encoded candidate transformation;computing a cost metric combining the compression rate and visual quality metric using a Lagrange multiplier; andselecting one candidate transformation with a lowest cost metric.54.[Rectified under Rule 91, 11.06.2025]The method of claim 53, wherein the visual quality metric is selected from a group consisting of peak signal-to-noise ratio (PSNR) and structural similarity index measure (SSIM) .55.[Rectified under Rule 91, 11.06.2025]The method of claim 53, wherein the Lagrange multiplier is determined based on a quantization parameter of the frame.56.[Rectified under Rule 91, 11.06.2025]The method of claim 53, wherein the encoding each candidate transformation is performed on one of:a full picture of the frame;a selected area of the frame; ora down-scaled version of the frame.57.[Rectified under Rule 91, 11.06.2025]The method of claim 35, further comprising:transforming reconstructed frames and associated motion information stored in a reconstructed picture buffer to align with a transformation applied to a currently coded frame, wherein transforming of the reconstructed frames enables motion compensation using the reconstructed frames.58.[Rectified under Rule 91, 11.06.2025]The method of claim 57, wherein the transforming the reconstructed frames and associated motion information comprises:applying an inverse transformation to each frame after reconstruction and before storage in the reconstructed picture buffer to generate an inversely transformed reconstructed frame, wherein the inverse transformation removes effects of the perspective transformation that was applied during coding of the frame;applying the inverse transformation to motion information associated with the reconstructed frame;storing the inversely transformed reconstructed frame and motion information in the reconstructed picture buffer; andwhen using a stored reconstructed frame for prediction of a current frame being coded, applying the perspective transformation to align the reconstructed frame with a transformation of the current frame.59.[Rectified under Rule 91, 11.06.2025]The method of claim 57, wherein the transforming the reconstructed frames and associated motion information comprises:determining a target transformation based on a transformation applied to a first frame in the GOP;for each subsequent frame in the GOP:applying a transformation to the subsequent frame and associated motion information of the subsequent frame based on an inverse transformation of the subsequent frame and the target transformation to generate transformed frame and motion information; andstoring the transformed frame and motion information in a reconstructed picture buffer.60.[Rectified under Rule 91, 11.06.2025]The method of claim 59, whereinwhen the transformation applied to a subsequent frame matches the target transformation, the transformation applied to the subsequent frame results in an identity transform requiring no additional transformation operations before storing the subsequent frame in the reconstructed picture buffer.61.[Rectified under Rule 91, 11.06.2025]The method of claim 59, further comprising:for outputting the first frame, applying an inverse transformation that is:an inverse of a forward transformation used for coding the first frame when outputting directly after coding; oran inverse of the target transformation when outputting the first frame from the reconstructed picture buffer.62.[Rectified under Rule 91, 11.06.2025]The method of claim 57, wherein a strategy for transforming and storing reconstructed frames is selected based on at least one of:computational characteristics of a target decoder platform;latency requirements of the target decoder platform; orrelative computational costs of forward and inverse transformations on the target decoder platform.63.[Rectified under Rule 91, 11.06.2025]The method of claim 35, wherein determining the perspective transformation comprises:obtaining motion information between a current frame and reconstructed frames;calculating motion vector prediction errors for different candidate transformations; andselecting one candidate transformation that minimizes the motion vector prediction error as the perspective transformation.64.[Rectified under Rule 91, 11.06.2025]The method of claim 63, wherein obtaining motion information comprises one of:processing an optical flow field for selected reconstructed frames; oranalyzing motion vectors obtained for a coarse grid of image areas.65.[Rectified under Rule 91, 11.06.2025]The method of claim 63, wherein calculating motion vector prediction errors comprises:predicting motion information for each consecutive sample or block in codec scanning order; andcomparing the prediction with obtained motion information using a cost function.66.[Rectified under Rule 91, 11.06.2025]The method of claim 35, wherein empty pixels in the forward transformed frame are filled using at least one pixel filling method from neighboring non-empty pixels;the forward transformed frame is obtained from the perspective transformation of the frame; andthe at least one pixel filling method is one of interpolation from neighboring non-empty pixels, extrapolation from neighboring non-empty pixels, or machine learning-based in-painting.67.A decoder comprising:a processor configured to call and run a computer program stored in a memory, to cause a device in which the processor is installed to execute the method of any of claims 35 to 66.68.A chip, comprising:a processor, configured to call and run a computer program stored in a memory, to cause a device in which the chip is installed to execute the method of any of claims 35 to 66.69.A computer-readable storage medium, in which a computer program is stored, wherein the computer program causes a computer to execute the method of any of claims 35 to 66.70.A computer program product, comprising a computer program, wherein the computer program causes a computer to execute the method of any of claims 35 to 66.71.A computer program, wherein the computer program causes a computer to execute the method of any of claims 35 to 66.