SlideShare ist ein Scribd-Unternehmen logo
1 von 3
Algorithms on fast motion estimation are always hot research spot, especially fast integer pel motion
estimation has achieved much more attention because traditional fractional pel motion estimation (such
as 1/2-pel) only take a very few proportion in the computation load of whole motion estimation. In this
post I wanted to put the information I have studying on the Search Techniques used in different
implementations of Motion Estimation of the H.264 encoder. I think this helps as quick reference for any
Video Engineer to understand the algorithms. I will keep on post on different search techniques as keep
reading.

Motion Estimation: ME is defined as searching the best motion vector (MV), which is the displacement
of the coordinate of the best similar block within a given search range in previously-encoded video
frames for a block in the current video frame.

Matching Error: Is the sum of absolute differences (SAD) between the reference and the candidate
block.

Figure-1 (taken from) shows the Motion Estimation flow in reference software- JM16.0.




Figure-1: Motion Estimation Flow in JM
Full Search Technique

In Block-matching full search (FS) algorithms, the matching errors will be calculated for all candidate
points within the predefined search range in the reference frame. The MV that gives minimum matching
error will be taken as the best MV. The calculation is huge.

These are the calculation I did for a search window with widths and heights defined as max_x, max_y,
min_x, min_y. This calculation is based on the JM16.0 reference software code.

search_range = max_x;
Total search points the computation will be done = (2* search_range+1)* (2* search_range+1)




Figure-2: 9 Sets of Reference and Current blocks for search range = 1

SAD Computation:

The following code snippet is from the JM reference software.

   for (y=0; y<blocksize_y; y++)
   {
     for (x = 0; x < blocksize_x; x+=4)
     {
       mcost += iabs( *src_line++ - *ref_line++                 );
       mcost += iabs( *src_line++ - *ref_line++                 );
       mcost += iabs( *src_line++ - *ref_line++                 );
       mcost += iabs( *src_line++ - *ref_line++                 );
     }
     if (mcost >= min_mcost) return mcost;
     ref_line += pad_size_x;
   }
As we can see, the SAD computation for one set of current (source) block and reference block will have,

blocksize_x*blocksize_y                  Additions
blocksize_x*blocksize_y                  Subtractions
blocksize_x*blocksize_y                  Absolute Computations
2*blocksize_x*blocksize_y                Address Generations
2*blocksize_x*blocksize_y                Loads
blocksize_x*blocksize_y                  Stores

*The loop overhead is not included

So even for a typical DSP processor with ABS instruction in it takes more than 8* blocksize_x*
blocksize_y cycles (assuming single cycle per operation) for one set. As the figure shows there will
be nine sets for search range equal to one. So the total operations will be 72* blocksize_x*
blocksize_y. For block size of 16, and search range as 1, there will be 18462 operations for only SAD
computations. HD resolution sequences need to have higher search ranges.

All the above computations are for only Integer Motion Vector Estimation (IME). After IME for a selected
block size, the Fractional Pixel Motion Estimation (FME) will be carried out around the estimated integer
motion vector. This process is called as Half-Pel Refinement and Quarter-Pel Refinement. Again the SADs
will be computed for a search window which is an area bounded by eight neighbor integer pels positions
around the best integer pel position. For 1/4-pel case, the search range is three 1/4-pel units. In
generation of these fractional pel positions, a 6 tap filter is used to produce the 1/2-pel positions, 1/4-
pel positions are produced by linear interpolation.

Due to the heavy computations involved in full search technique, it is not at all suitable for
implementation but it serves as a reference. It’s the ideal reference factor for the compressed video
quality achieved by the other optimized techniques.

Weitere ähnliche Inhalte

Was ist angesagt?

13. Pointer and 2D array
13. Pointer  and  2D array13. Pointer  and  2D array
13. Pointer and 2D arrayGem WeBlog
 
The dag representation of basic blocks
The dag representation of basic blocksThe dag representation of basic blocks
The dag representation of basic blocksShabeen Taj
 
2 Combinational Logic Circuit 01
2 Combinational Logic Circuit 012 Combinational Logic Circuit 01
2 Combinational Logic Circuit 01guestde204e
 
Interconnection Network
Interconnection NetworkInterconnection Network
Interconnection NetworkHeman Pathak
 
adder and subtractor
 adder and subtractor adder and subtractor
adder and subtractorUnsa Shakir
 
A High Throughput CFA AES S-Box with Error Correction Capability
A High Throughput CFA AES S-Box with Error Correction CapabilityA High Throughput CFA AES S-Box with Error Correction Capability
A High Throughput CFA AES S-Box with Error Correction CapabilityIOSR Journals
 
A Novel Approach of Caching Direct Mapping using Cubic Approach
A Novel Approach of Caching Direct Mapping using Cubic ApproachA Novel Approach of Caching Direct Mapping using Cubic Approach
A Novel Approach of Caching Direct Mapping using Cubic ApproachKartik Asati
 
Design and Implementation of High Speed Area Efficient Double Precision Float...
Design and Implementation of High Speed Area Efficient Double Precision Float...Design and Implementation of High Speed Area Efficient Double Precision Float...
Design and Implementation of High Speed Area Efficient Double Precision Float...IOSR Journals
 
for sbi so Ds c c++ unix rdbms sql cn os
for sbi so   Ds c c++ unix rdbms sql cn osfor sbi so   Ds c c++ unix rdbms sql cn os
for sbi so Ds c c++ unix rdbms sql cn osalisha230390
 
New Chaotic Substation and Permutation Method for Image Encryption
New Chaotic Substation and Permutation Method for Image EncryptionNew Chaotic Substation and Permutation Method for Image Encryption
New Chaotic Substation and Permutation Method for Image Encryptiontayseer Karam alshekly
 
Binary space partition
Binary space partitionBinary space partition
Binary space partitionGopal kumar
 
Multiplier and Accumulator Using Csla
Multiplier and Accumulator Using CslaMultiplier and Accumulator Using Csla
Multiplier and Accumulator Using CslaIOSR Journals
 
multiplexers and demultiplexers
 multiplexers and demultiplexers multiplexers and demultiplexers
multiplexers and demultiplexersUnsa Shakir
 

Was ist angesagt? (19)

Rs lab 06
Rs lab 06Rs lab 06
Rs lab 06
 
13. Pointer and 2D array
13. Pointer  and  2D array13. Pointer  and  2D array
13. Pointer and 2D array
 
The dag representation of basic blocks
The dag representation of basic blocksThe dag representation of basic blocks
The dag representation of basic blocks
 
2 Combinational Logic Circuit 01
2 Combinational Logic Circuit 012 Combinational Logic Circuit 01
2 Combinational Logic Circuit 01
 
Interconnection Network
Interconnection NetworkInterconnection Network
Interconnection Network
 
Matlab: Discrete Linear Systems
Matlab: Discrete Linear SystemsMatlab: Discrete Linear Systems
Matlab: Discrete Linear Systems
 
adder and subtractor
 adder and subtractor adder and subtractor
adder and subtractor
 
A High Throughput CFA AES S-Box with Error Correction Capability
A High Throughput CFA AES S-Box with Error Correction CapabilityA High Throughput CFA AES S-Box with Error Correction Capability
A High Throughput CFA AES S-Box with Error Correction Capability
 
A Novel Approach of Caching Direct Mapping using Cubic Approach
A Novel Approach of Caching Direct Mapping using Cubic ApproachA Novel Approach of Caching Direct Mapping using Cubic Approach
A Novel Approach of Caching Direct Mapping using Cubic Approach
 
Lecture two
Lecture twoLecture two
Lecture two
 
Design and Implementation of High Speed Area Efficient Double Precision Float...
Design and Implementation of High Speed Area Efficient Double Precision Float...Design and Implementation of High Speed Area Efficient Double Precision Float...
Design and Implementation of High Speed Area Efficient Double Precision Float...
 
Modified booth
Modified boothModified booth
Modified booth
 
for sbi so Ds c c++ unix rdbms sql cn os
for sbi so   Ds c c++ unix rdbms sql cn osfor sbi so   Ds c c++ unix rdbms sql cn os
for sbi so Ds c c++ unix rdbms sql cn os
 
New Chaotic Substation and Permutation Method for Image Encryption
New Chaotic Substation and Permutation Method for Image EncryptionNew Chaotic Substation and Permutation Method for Image Encryption
New Chaotic Substation and Permutation Method for Image Encryption
 
MULTIPLEXER
MULTIPLEXERMULTIPLEXER
MULTIPLEXER
 
Computer Science Assignment Help
Computer Science Assignment Help Computer Science Assignment Help
Computer Science Assignment Help
 
Binary space partition
Binary space partitionBinary space partition
Binary space partition
 
Multiplier and Accumulator Using Csla
Multiplier and Accumulator Using CslaMultiplier and Accumulator Using Csla
Multiplier and Accumulator Using Csla
 
multiplexers and demultiplexers
 multiplexers and demultiplexers multiplexers and demultiplexers
multiplexers and demultiplexers
 

Ähnlich wie Full Search Technique

High Performance Architecture for Full Search Block matching Algorithm
High Performance Architecture for Full Search Block matching AlgorithmHigh Performance Architecture for Full Search Block matching Algorithm
High Performance Architecture for Full Search Block matching Algorithmiosrjce
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
FPGA DESIGN FOR H.264/AVC ENCODER
FPGA DESIGN FOR H.264/AVC ENCODERFPGA DESIGN FOR H.264/AVC ENCODER
FPGA DESIGN FOR H.264/AVC ENCODERIJCSEA Journal
 
Fast Computational Four-Neighborhood Search Algorithm For Block matching Moti...
Fast Computational Four-Neighborhood Search Algorithm For Block matching Moti...Fast Computational Four-Neighborhood Search Algorithm For Block matching Moti...
Fast Computational Four-Neighborhood Search Algorithm For Block matching Moti...IJERA Editor
 
IE-301_OptionalProject_Group2_Report
IE-301_OptionalProject_Group2_ReportIE-301_OptionalProject_Group2_Report
IE-301_OptionalProject_Group2_ReportSarp Uzel
 
COSA and CSA based 32 -bit unsigned multipler
COSA and CSA based 32 -bit unsigned multiplerCOSA and CSA based 32 -bit unsigned multipler
COSA and CSA based 32 -bit unsigned multiplerinventy
 
A Survey on Block Matching Algorithms for Video Coding
A Survey on Block Matching Algorithms for Video Coding A Survey on Block Matching Algorithms for Video Coding
A Survey on Block Matching Algorithms for Video Coding IJECEIAES
 
A Survey on Block Matching Algorithms for Video Coding
A Survey on Block Matching Algorithms for Video Coding  A Survey on Block Matching Algorithms for Video Coding
A Survey on Block Matching Algorithms for Video Coding Yayah Zakaria
 
Heading for a Record: Chromium, the 5th Check
Heading for a Record: Chromium, the 5th CheckHeading for a Record: Chromium, the 5th Check
Heading for a Record: Chromium, the 5th CheckPVS-Studio
 
Road Segmentation from satellites images
Road Segmentation from satellites imagesRoad Segmentation from satellites images
Road Segmentation from satellites imagesYoussefKitane
 
GSP 215 Effective Communication - tutorialrank.com
GSP 215  Effective Communication - tutorialrank.comGSP 215  Effective Communication - tutorialrank.com
GSP 215 Effective Communication - tutorialrank.comBartholomew35
 
The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)theijes
 
IRJET-ASIC Implementation for SOBEL Accelerator
IRJET-ASIC Implementation for SOBEL AcceleratorIRJET-ASIC Implementation for SOBEL Accelerator
IRJET-ASIC Implementation for SOBEL AcceleratorIRJET Journal
 
ASIC Implementation for SOBEL Accelerator
ASIC Implementation for SOBEL AcceleratorASIC Implementation for SOBEL Accelerator
ASIC Implementation for SOBEL AcceleratorIRJET Journal
 
MODIFIED VORTEX SEARCH ALGORITHM FOR REAL PARAMETER OPTIMIZATION
MODIFIED VORTEX SEARCH ALGORITHM FOR REAL PARAMETER OPTIMIZATIONMODIFIED VORTEX SEARCH ALGORITHM FOR REAL PARAMETER OPTIMIZATION
MODIFIED VORTEX SEARCH ALGORITHM FOR REAL PARAMETER OPTIMIZATIONcscpconf
 
Modified Vortex Search Algorithm for Real Parameter Optimization
Modified Vortex Search Algorithm for Real Parameter Optimization Modified Vortex Search Algorithm for Real Parameter Optimization
Modified Vortex Search Algorithm for Real Parameter Optimization csandit
 
High Speed Low Power Veterbi Decoder Design for TCM Decoders
High Speed Low Power Veterbi Decoder Design for TCM DecodersHigh Speed Low Power Veterbi Decoder Design for TCM Decoders
High Speed Low Power Veterbi Decoder Design for TCM Decodersijsrd.com
 
Comparison of Various RCNN techniques for Classification of Object from Image
Comparison of Various RCNN techniques for Classification of Object from ImageComparison of Various RCNN techniques for Classification of Object from Image
Comparison of Various RCNN techniques for Classification of Object from ImageIRJET Journal
 
Query Optimization - Brandon Latronica
Query Optimization - Brandon LatronicaQuery Optimization - Brandon Latronica
Query Optimization - Brandon Latronica"FENG "GEORGE"" YU
 

Ähnlich wie Full Search Technique (20)

High Performance Architecture for Full Search Block matching Algorithm
High Performance Architecture for Full Search Block matching AlgorithmHigh Performance Architecture for Full Search Block matching Algorithm
High Performance Architecture for Full Search Block matching Algorithm
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
 
Ijetr042101
Ijetr042101Ijetr042101
Ijetr042101
 
FPGA DESIGN FOR H.264/AVC ENCODER
FPGA DESIGN FOR H.264/AVC ENCODERFPGA DESIGN FOR H.264/AVC ENCODER
FPGA DESIGN FOR H.264/AVC ENCODER
 
Fast Computational Four-Neighborhood Search Algorithm For Block matching Moti...
Fast Computational Four-Neighborhood Search Algorithm For Block matching Moti...Fast Computational Four-Neighborhood Search Algorithm For Block matching Moti...
Fast Computational Four-Neighborhood Search Algorithm For Block matching Moti...
 
IE-301_OptionalProject_Group2_Report
IE-301_OptionalProject_Group2_ReportIE-301_OptionalProject_Group2_Report
IE-301_OptionalProject_Group2_Report
 
COSA and CSA based 32 -bit unsigned multipler
COSA and CSA based 32 -bit unsigned multiplerCOSA and CSA based 32 -bit unsigned multipler
COSA and CSA based 32 -bit unsigned multipler
 
A Survey on Block Matching Algorithms for Video Coding
A Survey on Block Matching Algorithms for Video Coding A Survey on Block Matching Algorithms for Video Coding
A Survey on Block Matching Algorithms for Video Coding
 
A Survey on Block Matching Algorithms for Video Coding
A Survey on Block Matching Algorithms for Video Coding  A Survey on Block Matching Algorithms for Video Coding
A Survey on Block Matching Algorithms for Video Coding
 
Heading for a Record: Chromium, the 5th Check
Heading for a Record: Chromium, the 5th CheckHeading for a Record: Chromium, the 5th Check
Heading for a Record: Chromium, the 5th Check
 
Road Segmentation from satellites images
Road Segmentation from satellites imagesRoad Segmentation from satellites images
Road Segmentation from satellites images
 
GSP 215 Effective Communication - tutorialrank.com
GSP 215  Effective Communication - tutorialrank.comGSP 215  Effective Communication - tutorialrank.com
GSP 215 Effective Communication - tutorialrank.com
 
The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)
 
IRJET-ASIC Implementation for SOBEL Accelerator
IRJET-ASIC Implementation for SOBEL AcceleratorIRJET-ASIC Implementation for SOBEL Accelerator
IRJET-ASIC Implementation for SOBEL Accelerator
 
ASIC Implementation for SOBEL Accelerator
ASIC Implementation for SOBEL AcceleratorASIC Implementation for SOBEL Accelerator
ASIC Implementation for SOBEL Accelerator
 
MODIFIED VORTEX SEARCH ALGORITHM FOR REAL PARAMETER OPTIMIZATION
MODIFIED VORTEX SEARCH ALGORITHM FOR REAL PARAMETER OPTIMIZATIONMODIFIED VORTEX SEARCH ALGORITHM FOR REAL PARAMETER OPTIMIZATION
MODIFIED VORTEX SEARCH ALGORITHM FOR REAL PARAMETER OPTIMIZATION
 
Modified Vortex Search Algorithm for Real Parameter Optimization
Modified Vortex Search Algorithm for Real Parameter Optimization Modified Vortex Search Algorithm for Real Parameter Optimization
Modified Vortex Search Algorithm for Real Parameter Optimization
 
High Speed Low Power Veterbi Decoder Design for TCM Decoders
High Speed Low Power Veterbi Decoder Design for TCM DecodersHigh Speed Low Power Veterbi Decoder Design for TCM Decoders
High Speed Low Power Veterbi Decoder Design for TCM Decoders
 
Comparison of Various RCNN techniques for Classification of Object from Image
Comparison of Various RCNN techniques for Classification of Object from ImageComparison of Various RCNN techniques for Classification of Object from Image
Comparison of Various RCNN techniques for Classification of Object from Image
 
Query Optimization - Brandon Latronica
Query Optimization - Brandon LatronicaQuery Optimization - Brandon Latronica
Query Optimization - Brandon Latronica
 

Kürzlich hochgeladen

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Kürzlich hochgeladen (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

Full Search Technique

  • 1. Algorithms on fast motion estimation are always hot research spot, especially fast integer pel motion estimation has achieved much more attention because traditional fractional pel motion estimation (such as 1/2-pel) only take a very few proportion in the computation load of whole motion estimation. In this post I wanted to put the information I have studying on the Search Techniques used in different implementations of Motion Estimation of the H.264 encoder. I think this helps as quick reference for any Video Engineer to understand the algorithms. I will keep on post on different search techniques as keep reading. Motion Estimation: ME is defined as searching the best motion vector (MV), which is the displacement of the coordinate of the best similar block within a given search range in previously-encoded video frames for a block in the current video frame. Matching Error: Is the sum of absolute differences (SAD) between the reference and the candidate block. Figure-1 (taken from) shows the Motion Estimation flow in reference software- JM16.0. Figure-1: Motion Estimation Flow in JM
  • 2. Full Search Technique In Block-matching full search (FS) algorithms, the matching errors will be calculated for all candidate points within the predefined search range in the reference frame. The MV that gives minimum matching error will be taken as the best MV. The calculation is huge. These are the calculation I did for a search window with widths and heights defined as max_x, max_y, min_x, min_y. This calculation is based on the JM16.0 reference software code. search_range = max_x; Total search points the computation will be done = (2* search_range+1)* (2* search_range+1) Figure-2: 9 Sets of Reference and Current blocks for search range = 1 SAD Computation: The following code snippet is from the JM reference software. for (y=0; y<blocksize_y; y++) { for (x = 0; x < blocksize_x; x+=4) { mcost += iabs( *src_line++ - *ref_line++ ); mcost += iabs( *src_line++ - *ref_line++ ); mcost += iabs( *src_line++ - *ref_line++ ); mcost += iabs( *src_line++ - *ref_line++ ); } if (mcost >= min_mcost) return mcost; ref_line += pad_size_x; }
  • 3. As we can see, the SAD computation for one set of current (source) block and reference block will have, blocksize_x*blocksize_y Additions blocksize_x*blocksize_y Subtractions blocksize_x*blocksize_y Absolute Computations 2*blocksize_x*blocksize_y Address Generations 2*blocksize_x*blocksize_y Loads blocksize_x*blocksize_y Stores *The loop overhead is not included So even for a typical DSP processor with ABS instruction in it takes more than 8* blocksize_x* blocksize_y cycles (assuming single cycle per operation) for one set. As the figure shows there will be nine sets for search range equal to one. So the total operations will be 72* blocksize_x* blocksize_y. For block size of 16, and search range as 1, there will be 18462 operations for only SAD computations. HD resolution sequences need to have higher search ranges. All the above computations are for only Integer Motion Vector Estimation (IME). After IME for a selected block size, the Fractional Pixel Motion Estimation (FME) will be carried out around the estimated integer motion vector. This process is called as Half-Pel Refinement and Quarter-Pel Refinement. Again the SADs will be computed for a search window which is an area bounded by eight neighbor integer pels positions around the best integer pel position. For 1/4-pel case, the search range is three 1/4-pel units. In generation of these fractional pel positions, a 6 tap filter is used to produce the 1/2-pel positions, 1/4- pel positions are produced by linear interpolation. Due to the heavy computations involved in full search technique, it is not at all suitable for implementation but it serves as a reference. It’s the ideal reference factor for the compressed video quality achieved by the other optimized techniques.