1. Introduction
1.1. Related Surveys
1.2. Survey Organization
2. Brief Overview and Standardization of OCC
2.1. Overview
2.2. Standardization
3. Optical Camera Communications
3.2. IEEE Standardized Techniques
3.3. Error Detection Coding Schemes
3.4. Synchronization
3.5. Summary and Insights
4. Signal Processing Techniques for OCC
4.1. Color Shift Keying
4.2. Color Intensity Modulation
5. Use Cases of OCC
5.1. OCC-Based Localization and Navigation
5.2. OCC-Based Motion Capture
5.3. OCC-Based Intelligent Transportation Systems
6. Research Challenges and Future Directions
6.1. Unified System Model and General Performance Analysis
6.2. Modeling of Ambient Light
6.3. Defocusing
6.4. Modeling of Signal Dependent Noise
6.5. Synchronization
6.6. Hybrid Systems
6.7. Robust Image Processing Techniques
6.8. Medium Access Control
6.9. Blockage
7. Conclusions