Rainer Lienhart

236 papers A* 28A 22B 12C 3Journal 73Unranked 81
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Julian Lorenz, Vladyslav Kovganko, Elias Kohout, Mrunmai Phatak, Daniel Kienzle, Rainer Lienhart
2026 J jnl
CoRR
Roman Küble, Marco Hüller, Mrunmai Phatak, Rainer Lienhart, Jörg Hähner
2026 J jnl
CoRR
Hugo Math, Julian Lorenz, Stefan Oelsner, Rainer Lienhart
2026 J jnl
CoRR
Hugo Math, Rainer Lienhart
2026 J jnl
CoRR
Hugo Math, Rainer Lienhart
2025 A* conf
ACM Multimedia
Rainer Lienhart, Thomas B. Moeslund, Hideo Saito
2025 conf
ICCVW
Julian Lorenz, Mrunmai Phatak, Robin Schön, Katja Ludwig, Nico Hörmann, Annemarie Friedrich, Rainer Lienhart
2025 J jnl
CoRR
Julian Lorenz, Mrunmai Phatak, Robin Schön, Katja Ludwig, Nico Hörmann, Annemarie Friedrich, Rainer Lienhart
2025 J jnl
CoRR
Christian Jaumann, Annemarie Friedrich, Rainer Lienhart
2025 conf
CVPR Workshops
Katja Ludwig, Yuliia Oksymets, Robin Schön, Daniel Kienzle, Rainer Lienhart
2025 J jnl
CoRR
Katja Ludwig, Yuliia Oksymets, Robin Schön, Daniel Kienzle, Rainer Lienhart
2025 J jnl
CoRR
Mrunmai Vivek Phatak, Julian Lorenz, Nico Hörmann, Jörg Hähner, Rainer Lienhart
2025 A* conf
AAAI
Hugo Math, Rainer Lienhart, Robin Schön
2025 conf
CVPR Workshops
Katja Ludwig, Julian Lorenz, Daniel Kienzle, Tuan Bui, Rainer Lienhart
2025 C conf
CBMI
Robin Schön, Julian Lorenz, Katja Ludwig, Daniel Kienle, Rainer Lienhart
2025 J jnl
CoRR
Robin Schön, Julian Lorenz, Katja Ludwig, Daniel Kienzle, Rainer Lienhart
2025 conf
ICCVW
Julian Lorenz, Katja Ludwig, Valentin Haug, Rainer Lienhart
2025 J jnl
CoRR
Julian Lorenz, Katja Ludwig, Valentin Haug, Rainer Lienhart
2025 J jnl
CoRR
Hugo Math, Robin Schön, Rainer Lienhart
2025 ed.
MMSports@MM
Rainer Lienhart, Thomas B. Moeslund, Hideo Saito
2025 conf
WACV (Workshops)
Robin Schön, Julian Lorenz, Daniel Kienzle, Rainer Lienhart
2025 J jnl
CoRR
Robin Schön, Julian Lorenz, Daniel Kienzle, Rainer Lienhart
2025 conf
CVPR Workshops
Daniel Kienzle, Robin Schön, Rainer Lienhart, Shin'ichi Satoh
2025 J jnl
CoRR
Daniel Kienzle, Robin Schön, Rainer Lienhart, Shin'ichi Satoh
2025 J jnl
CoRR
Hugo Math, Rainer Lienhart
2025 J jnl
CoRR
Daniel Kienzle, Katja Ludwig, Julian Lorenz, Shin'ichi Satoh, Rainer Lienhart
2024 conf
ECCV (61)
Julian Lorenz, Alexander Pest, Daniel Kienzle, Katja Ludwig, Rainer Lienhart
2024 J jnl
CoRR
Julian Lorenz, Alexander Pest, Daniel Kienzle, Katja Ludwig, Rainer Lienhart
2024 conf
CVPR Workshops
Julian Lorenz, Robin Schön, Katja Ludwig, Rainer Lienhart
2024 J jnl
CoRR
Julian Lorenz, Robin Schön, Katja Ludwig, Rainer Lienhart
2024 conf
CVPR Workshops
Robin Schön, Julian Lorenz, Katja Ludwig, Rainer Lienhart
2024 J jnl
CoRR
Robin Schön, Julian Lorenz, Katja Ludwig, Rainer Lienhart
2024 J jnl
CoRR
Hugo Math, Rainer Lienhart, Robin Schön
2024 J jnl
CoRR
Katja Ludwig, Julian Lorenz, Daniel Kienzle, Tuan Bui, Rainer Lienhart
2024 ed.
MMSports@MM
Rainer Lienhart, Thomas B. Moeslund, Hideo Saito
2024 conf
MIPR
Daniel Kienzle, Marco Kantonis, Robin Schön, Rainer Lienhart
2024 J jnl
CoRR
Daniel Kienzle, Marco Kantonis, Robin Schön, Rainer Lienhart
2024 J jnl
Medical Image Anal.
Luuk H. Boulogne, Julian Lorenz, Daniel Kienzle, Robin Schön, Katja Ludwig, Rainer Lienhart, Simon Jégou, Guang Li, Cong Chen, Qi Wang, Derik Shi, Mayug Maniparambil, Dominik Müller, Silvan Mertes, Niklas Schröter, Fabio Hellmann, Miriam Elia, Ine Dirks, Matías Nicolás Bossa, Abel Díaz Berenguer, Tanmoy Mukherjee, Jef Vandemeulebroucke, Hichem Sahli, Nikos Deligiannis, Panagiotis Gonidakis, Ngoc Dung Huynh, Imran Razzak, Mohamed Reda Bouadjenek, Mario Verdicchio, Pasquale Borrelli, Marco Aiello, James A. Meakin, Alexander Lemm, Christoph Russ, Razvan Ionasec, Nikos Paragios, Bram van Ginneken, Marie-Pierre Revel
2024 conf
3DV
Daniel Kienzle, Katja Ludwig, Julian Lorenz, Rainer Lienhart
2024 J jnl
CoRR
Robin Schön, Daniel Kienzle, Rainer Lienhart
2024 C conf
CBMI
Robin Schön, Daniel Kienzle, Rainer Lienhart
2023 conf
CVPR Workshops
Katja Ludwig, Julian Lorenz, Robin Schön, Rainer Lienhart
2023 J jnl
CoRR
Katja Ludwig, Julian Lorenz, Robin Schön, Rainer Lienhart
2023 J jnl
SN Comput. Sci.
Stephan Brehm, Florian Barthel, Rainer Lienhart
2023 conf
WACV (Workshops)
Katja Ludwig, Daniel Kienzle, Julian Lorenz, Rainer Lienhart
2023 conf
ICCV (Workshops)
Julian Lorenz, Florian Barthel, Daniel Kienzle, Rainer Lienhart
2023 J jnl
CoRR
Julian Lorenz, Florian Barthel, Daniel Kienzle, Rainer Lienhart
2023 conf
CVPR Workshops
Robin Schön, Katja Ludwig, Rainer Lienhart
2023 J jnl
CoRR
Robin Schön, Katja Ludwig, Rainer Lienhart
2023 A* conf
ACM Multimedia
Hideo Saito, Thomas B. Moeslund, Rainer Lienhart
2023 ed.
MMSports@MM
Rainer Lienhart, Thomas B. Moeslund, Hideo Saito
2023 J jnl
CoRR
Luuk H. Boulogne, Julian Lorenz, Daniel Kienzle, Robin Schön, Katja Ludwig, Rainer Lienhart, Simon Jégou, Guang Li, Cong Chen, Qi Wang, Derik Shi, Mayug Maniparambil, Dominik Müller, Silvan Mertes, Niklas Schröter, Fabio Hellmann, Miriam Elia, Ine Dirks, Matías Nicolás Bossa, Abel Díaz Berenguer, Tanmoy Mukherjee, Jef Vandemeulebroucke, Hichem Sahli, Nikos Deligiannis, Panagiotis Gonidakis, Ngoc Dung Huynh, Imran Razzak, Mohamed Reda Bouadjenek, Mario Verdicchio, Pasquale Borrelli, Marco Aiello, James A. Meakin, Alexander Lemm, Christoph Russ, Razvan Ionasec, Nikos Paragios, Bram van Ginneken, Marie-Pierre Revel Dubois
2023 J jnl
CoRR
Daniel Kienzle, Julian Lorenz, Katja Ludwig, Rainer Lienhart
2023 A conf
WACV
Moritz Einfalt, Katja Ludwig, Rainer Lienhart
2022 conf
ECCV Workshops (7)
Daniel Kienzle, Julian Lorenz, Robin Schön, Katja Ludwig, Rainer Lienhart
2022 conf
ICIAP (1)
Sebastian A. Scherer, Stephan Brehm, Rainer Lienhart
2022 J jnl
CoRR
Daniel Kienzle, Julian Lorenz, Robin Schön, Katja Ludwig, Rainer Lienhart
2022 conf
WACV (Workshops)
Katja Ludwig, Philipp Harzig, Rainer Lienhart
2022 J jnl
CoRR
Katja Ludwig, Daniel Kienzle, Julian Lorenz, Rainer Lienhart
2022 A* conf
ACM Multimedia
Hideo Saito, Thomas B. Moeslund, Rainer Lienhart
2022 ed.
MMSports@MM
Rainer Lienhart, Thomas B. Moeslund, Hideo Saito
2022 A conf
BMVC
Sebastian A. Scherer, Robin Schön, Rainer Lienhart
2022 J jnl
CoRR
Sebastian A. Scherer, Robin Schön, Rainer Lienhart
2022 conf
CVPR Workshops
Katja Ludwig, Daniel Kienzle, Rainer Lienhart
2022 J jnl
CoRR
Katja Ludwig, Daniel Kienzle, Rainer Lienhart
2022 conf
ICAART (2)
Stephan Brehm, Sebastian A. Scherer, Rainer Lienhart
2022 B conf
ICIP
Philipp Harzig, Moritz Einfalt, Rainer Lienhart
2022 J jnl
CoRR
Moritz Einfalt, Katja Ludwig, Rainer Lienhart
2021 J jnl
CoRR
Philipp Harzig, Moritz Einfalt, Katja Ludwig, Rainer Lienhart
2021 A* conf
ACM Multimedia
Rainer Lienhart, Thomas B. Moeslund, Hideo Saito
2021 ed.
MMSports@MM
Rainer Lienhart, Thomas B. Moeslund, Hideo Saito
2021 conf
ICME Workshops
Katja Ludwig, Sebastian A. Scherer, Moritz Einfalt, Rainer Lienhart
2021 J jnl
CoRR
Stephan Brehm, Sebastian A. Scherer, Rainer Lienhart
2021 J jnl
CoRR
Philipp Harzig, Moritz Einfalt, Rainer Lienhart
2021 conf
DeLTA
Sebastian A. Scherer, Robin Schön, Katja Ludwig, Rainer Lienhart
2020 conf
CVPR Workshops
Moritz Einfalt, Rainer Lienhart
2020 J jnl
CoRR
Moritz Einfalt, Rainer Lienhart
2020 conf
3DV
Nikolas Klug, Moritz Einfalt, Stephan Brehm, Rainer Lienhart
2020 J jnl
CoRR
Nikolas Klug, Moritz Einfalt, Stephan Brehm, Rainer Lienhart
2020 J jnl
IEEE Trans. Multim.
Yonghong Tian, Cees G. M. Snoek, Jingdong Wang, Zhu Liu, Rainer Lienhart, Susanne Boll
2020 conf
CVPR Workshops
Stephan Brehm, Sebastian A. Scherer, Rainer Lienhart
2020 conf
MIPR
Stephan Brehm, Philipp Harzig, Moritz Einfalt, Rainer Lienhart
2020 ed.
MMSports@MM
Rainer Lienhart, Thomas B. Moeslund, Hideo Saito
2020 A* conf
ACM Multimedia
Rainer Lienhart, Thomas B. Moeslund, Hideo Saito
2020 conf
ICME Workshops
Katja Ludwig, Moritz Einfalt, Rainer Lienhart
2020 conf
TRECVID
Philipp Harzig, Moritz Einfalt, Katja Ludwig, Rainer Lienhart
2019 A conf
BMVC
Philipp Harzig, Yan-Ying Chen, Francine Chen, Rainer Lienhart
2019 J jnl
CoRR
Philipp Harzig, Yan-Ying Chen, Francine Chen, Rainer Lienhart
2019 A* conf
ACM Multimedia
Philipp Harzig, Moritz Einfalt, Rainer Lienhart
2019 conf
MIPR
Moritz Einfalt, Rainer Lienhart, Matthew Lee, Lyndon Kennedy
2019 conf
MMSports@MM
Moritz Einfalt, Charles Dampeyrou, Dan Zecha, Rainer Lienhart
2019 J jnl
CoRR
Philipp Harzig, Dan Zecha, Rainer Lienhart, Carolin Kaiser, René Schallner
2019 conf
MIPR
Philipp Harzig, Dan Zecha, Rainer Lienhart, Carolin Kaiser, René Schallner
2019 A* conf
ACM Multimedia
Rainer Lienhart, Thomas B. Moeslund, Hideo Saito
2019 ed.
MMSports@MM
Rainer Lienhart, Thomas B. Moeslund, Hideo Saito
2019 J jnl
IEEE Multim.
Guan-Ming Su, Chengcui Zhang, Haohong Wang, Min Chen, Mohan S. Kankanhalli, Rainer Lienhart
2019 conf
CVPR Workshops
Dan Zecha, Moritz Einfalt, Rainer Lienhart
2018 A* conf
ACM Multimedia
Rainer Lienhart, Thomas B. Moeslund, Hideo Saito
2018 A* ed.
ACM Multimedia
Susanne Boll, Kyoung Mu Lee, Jiebo Luo, Wenwu Zhu, Hyeran Byun, Chang Wen Chen, Rainer Lienhart, Tao Mei
2018 conf
MMSports@MM
Dan Zecha, Christian Eggert, Moritz Einfalt, Stephan Brehm, Rainer Lienhart
2018 A conf
WACV
Moritz Einfalt, Dan Zecha, Rainer Lienhart
2018 J jnl
CoRR
Moritz Einfalt, Dan Zecha, Rainer Lienhart
2018 A* conf
ACM Multimedia
Jitao Sang, Jun Yu, Ramesh C. Jain, Rainer Lienhart, Peng Cui, Jiashi Feng
2018 conf
CVPR Workshops
Dan Zecha, Moritz Einfalt, Christian Eggert, Rainer Lienhart
2018 J jnl
CoRR
Rainer Lienhart, Moritz Einfalt, Dan Zecha
2018 J jnl
Int. J. Comput. Sci. Sport
Rainer Lienhart, Moritz Einfalt, Dan Zecha
2018 conf
MIPR
Philipp Harzig, Stephan Brehm, Rainer Lienhart, Carolin Kaiser, René Schallner
2018 J jnl
CoRR
Philipp Harzig, Stephan Brehm, Rainer Lienhart, Carolin Kaiser, René Schallner
2018 ed.
MMSports@MM
Rainer Lienhart, Thomas B. Moeslund, Hideo Saito
2018 A* conf
ACM Multimedia
Rainer Lienhart, Tao Mei
2018 conf
MMSports@MM
Rainer Lienhart
2018 B conf
ICMR
Philipp Harzig, Christian Eggert, Rainer Lienhart
2017 A conf
ICME
Christian Eggert, Stephan Brehm, Anton Winschel, Dan Zecha, Rainer Lienhart
2017 B conf
ICMR
Christian Eggert, Dan Zecha, Stephan Brehm, Rainer Lienhart
2017 J jnl
CoRR
Christian Eggert, Dan Zecha, Stephan Brehm, Rainer Lienhart
2017 conf
Computer Vision Applications in Sports
Dan Zecha, Christian Eggert, Rainer Lienhart
2017 B ed.
ICMR
Bogdan Ionescu, Nicu Sebe, Jiashi Feng, Martha A. Larson, Rainer Lienhart, Cees Snoek
2017 A* ed.
ACM Multimedia
Qiong Liu, Rainer Lienhart, Haohong Wang, Sheng-Wei "Kuan-Ta" Chen, Susanne Boll, Yi-Ping Phoebe Chen, Gerald Friedland, Jia Li, Shuicheng Yan
2016 J jnl
CoRR
Anton Winschel, Rainer Lienhart, Christian Eggert
2016 J jnl
Multim. Tools Appl.
Christian X. Ries, Fabian Richter, Rainer Lienhart
2016 B conf
ICPR
Christian Eggert, Anton Winschel, Dan Zecha, Rainer Lienhart
2016 J jnl
Multim. Tools Appl.
Christian X. Ries, Fabian Richter, Rainer Lienhart
2015 conf
SASO
Alexander Schiendorfer, Christoph Lassner, Gerrit Anders, Wolfgang Reif, Rainer Lienhart
2015 A conf
ICDAR
Fabian Richter, Christian Eggert, Rainer Lienhart
2015 J jnl
Multim. Syst.
Zheng-Jun Zha, Yan Liu, Shin'ichi Satoh, Xinguo Yu, Rainer Lienhart
2015 A conf
WACV
Dan Zecha, Rainer Lienhart
2015 J jnl
CoRR
Dan Zecha, Rainer Lienhart
2015 A conf
WACV
Christoph Lassner, Rainer Lienhart
2015 A* conf
ACM Multimedia
Christian Eggert, Anton Winschel, Rainer Lienhart
2015 A* conf
ACM Multimedia
Christoph Lassner, Rainer Lienhart
2014 J jnl
Multim. Tools Appl.
Christian X. Ries, Rainer Lienhart
2014 C conf
CBMI
Christian X. Ries, Fabian Richter, Stefan Romberg, Rainer Lienhart
2014 conf
ACCV (3)
Fabian Richter, Christian X. Ries, Rainer Lienhart
2014 B conf
ICIP
Christian Eggert, Stefan Romberg, Rainer Lienhart
2014 A conf
ICME
Fabian Richter, Christian X. Ries, Stefan Romberg, Rainer Lienhart
2013 J jnl
Int. J. Multim. Inf. Retr.
Stefan Romberg, Rainer Lienhart
2013 B conf
ICMR
Stefan Romberg, Rainer Lienhart
2013 J jnl
ACM Trans. Multim. Comput. Commun. Appl.
Klara Nahrstedt, Rainer Lienhart, Malcolm Slaney
2013 J jnl
IEEE Trans. Multim.
Fabian Richter, Christian X. Ries, Nicolas Cebron, Rainer Lienhart
2013 conf
ICMLA (2)
Christoph Lassner, Rainer Lienhart
2013 B conf
ICMR
Christian X. Ries, Fabian Richter, Rainer Lienhart
2012 J jnl
Prog. Artif. Intell.
Nicolas Cebron, Fabian Richter, Rainer Lienhart
2012 conf
ICPRAM (2)
Nicolas Cebron, Fabian Richter, Rainer Lienhart
2012 B conf
ICMR
Christian X. Ries, Rainer Lienhart
2012 A* conf
CVPR
Johannes Schels, Joerg Liebelt, Rainer Lienhart
2012 J jnl
Multim. Tools Appl.
Fabian Richter, Stefan Romberg, Eva Hörster, Rainer Lienhart
2012 J jnl
Int. J. Multim. Inf. Retr.
Stefan Romberg, Rainer Lienhart, Eva Hörster
2012 conf
PCM
Stefan Romberg, Moritz August, Christian X. Ries, Rainer Lienhart
2012 conf
Multimedia on Mobile Devices / Multimedia Content Access: Algorithms and Systems
Dan Zecha, Thomas Greif, Rainer Lienhart
2012 ed.
ICIMCS
Xinguo Yu, Rainer Lienhart, Zheng-Jun Zha, Yan Liu, Shin'ichi Satoh
2011 A conf
ICME
Fabian Richter, Christian X. Ries, Rainer Lienhart
2011 A conf
ICME
Johannes Schels, Jörg Liebelt, Klaus Schertler, Rainer Lienhart
2011 A conf
ICME
Thomas Greif, Rainer Lienhart, Debabrata Sengupta
2011 B conf
ICMR
Stefan Romberg, Lluis Garcia Pueyo, Rainer Lienhart, Roelof van Zwol
2011 conf
ICCV Workshops
Johannes Schels, Joerg Liebelt, Rainer Lienhart
2011 B conf
ICMR
Johannes Schels, Jörg Liebelt, Klaus Schertler, Rainer Lienhart
2011 A* conf
ACM Multimedia
Pablo César, Wei Tsang Ooi, Ben Moskowitz, Zohar Babin, Dick C. A. Bulterman, Rainer Lienhart, Robert Richter
2010 conf
Visual Information Processing and Communication
Thomas Greif, Rainer Lienhart
2010 conf
Visual Information Processing and Communication
Christian X. Ries, Rainer Lienhart
2010 ch.
Video Search and Mining
Ina Döhring, Rainer Lienhart
2010 conf
Multimedia Information Retrieval
Fabian Richter, Stefan Romberg, Eva Hörster, Rainer Lienhart
2010 A conf
ICME
Christian X. Ries, Stefan Romberg, Rainer Lienhart
2009 A conf
ICME
Rainer Lienhart, Rudolf Hauke
2009 conf
CIVR
Ina Döhring, Rainer Lienhart
2009 conf
CIVR
Rainer Lienhart, Stefan Romberg, Eva Hörster
2009 A conf
ICME
Stefan Romberg, Eva Hörster, Rainer Lienhart
2009 A conf
ICME
C. Gregor v. d. Boogaart, Rainer Lienhart
2009 ch.
Multi-Camera Networks
Eva Hörster, Rainer Lienhart
2008 conf
DAGM-Symposium
Eva Hörster, Thomas Greif, Rainer Lienhart, Malcolm Slaney
2008 conf
CIVR
Eva Hörster, Rainer Lienhart, Malcolm Slaney
2008 A* conf
ACM Multimedia
Eva Hörster, Rainer Lienhart
2008 conf
CIVR
Aidong Zhang, Shih-Fu Chang, Arif Ghafoor, Thomas S. Huang, Ramesh C. Jain, Rainer Lienhart
2007 A* conf
CVPR
Eva Hörster, Rainer Lienhart
2007 conf
CIVR
Eva Hörster, Rainer Lienhart, Malcolm Slaney
2007 conf
Multimedia Information Retrieval
Jia Li, Shih-Fu Chang, Michael Lesk, Rainer Lienhart, Jiebo Luo, Arnold W. M. Smeulders
2007 conf
ICASSP (4)
Rainer Lienhart, Malcolm Slaney
2007 A* ed.
ACM Multimedia
Rainer Lienhart, Anand R. Prasad, Alan Hanjalic, Sunghyun Choi, Brian P. Bailey, Nicu Sebe
2006 A conf
ICME
Eva Hörster, Rainer Lienhart
2006 J jnl
Multim. Syst.
Eva Hörster, Rainer Lienhart
2006 conf
ICASSP (3)
C. Gregor v. d. Boogaart, Rainer Lienhart
2006 conf
VSSN@MM
Eva Hörster, Rainer Lienhart
2005 conf
VSSN@MM
Rainer Lienhart
2005 conf
VSSN@MM
Eva Hörster, Rainer Lienhart, Walter Kellermann, Jean-Yves Bouguet
2005 J jnl
IEEE Trans. Speech Audio Process.
Vikas C. Raykar, Igor Kozintsev, Rainer Lienhart
2005 A conf
ICME
Eva Hörster, Rainer Lienhart, Walter Kellermann, Jean-Yves Bouguet
2005 ed.
Storage and Retrieval Methods and Applications for Multimedia
Rainer Lienhart, Noboru Babaguchi, Edward Y. Chang
2004 A* conf
ACM Multimedia
Susanne Boll, Dick C. A. Bulterman, Ramesh C. Jain, Tat-Seng Chua, Rainer Lienhart, Lynn Wilcox, Marc Davis, Svetha Venkatesh
2004 conf
EUSIPCO
Dmitry Budnikov, Igor Chikalov, Igor Kozintsev, Rainer Lienhart
2004 A* ed.
ACM Multimedia
Henning Schulzrinne, Nevenka Dimitrova, Martina Angela Sasse, Sue B. Moon, Rainer Lienhart
2004 conf
ICASSP (3)
Dmitry Budnikov, Igor Chikalov, Sergey Egorychev, Igor Kozintsev, Rainer Lienhart
2004 conf
VSSN@MM
Rainer Lienhart
2004 A conf
ICME
Rainer Lienhart, Igor Kozintsev
2004 ed.
Storage and Retrieval Methods and Applications for Multimedia
Minerva M. Yeung, Rainer Lienhart, Chung-Sheng Li
2004 conf
ISMSE
Stefan Wehr, Igor Kozintsev, Rainer Lienhart, Walter Kellermann
2003 A conf
ICME
Rainer Lienhart, Luhong Liang, Alexander Kuranov
2003 conf
DAGM-Symposium
Rainer Lienhart, Alexander Kuranov, Vadim Pisarevsky
2003 A conf
IPDPS
Xinmin Tian, Yen-Kuang Chen, Milind Girkar, Steven Ge, Rainer Lienhart, Sanjiv Shah
2003 conf
Storage and Retrieval for Media Databases
Rainer Lienhart, Matthew J. Holliman, Yen-Kuang Chen, Igor Kozintsev, Minerva M. Yeung
2003 conf
ICASSP (4)
Rainer Lienhart, Igor Kozintsev, Stefan Wehr, Minerva M. Yeung
2003 A* conf
ACM Multimedia
Vikas C. Raykar, Igor Kozintsev, Rainer Lienhart
2003 ed.
Storage and Retrieval for Media Databases
Minerva M. Yeung, Rainer Lienhart, Chung-Sheng Li
2003 A* conf
ACM Multimedia
Rainer Lienhart, Igor Kozintsev, Stefan Wehr
2002 conf
ICME (1)
Jochen Maydt, Rainer Lienhart
2002 conf
ICIP (1)
Rainer Lienhart, Jochen Maydt
2002 conf
Storage and Retrieval for Media Databases
Alexander Hartmann, Rainer Lienhart
2002 J jnl
J. Electronic Imaging
Rainer Lienhart, Alexander Hartmann
2002 B conf
ICPADS
Yen-Kuang Chen, Eric Debes, Rainer Lienhart, Matthew J. Holliman, Minerva M. Yeung
2002 J jnl
IEEE Internet Comput.
Rainer Lienhart, Matthew J. Holliman, Yen-Kuang Chen, Igor Kozintsev, Minerva M. Yeung
2002 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Rainer Lienhart, Axel Wernicke
2002 ed.
Storage and Retrieval for Media Databases
Minerva M. Yeung, Chung-Sheng Li, Rainer Lienhart
2002 conf
ISMSE
Yen-Kuang Chen, Rainer Lienhart, Eric Debes, Matthew J. Holliman, Minerva M. Yeung
2001 conf
ICIP (3)
Rainer Lienhart, André Zaccarin
2001 J jnl
J. Electronic Imaging
Minerva M. Yeung, Chung-Sheng Li, Rainer Lienhart, Boon-Lock Yeo
2001 J jnl
Int. J. Image Graph.
Rainer Lienhart
2001 conf
Storage and Retrieval for Media Databases
Rainer Lienhart
2001 J jnl
Multim. Tools Appl.
Silvia Pfeiffer, Rainer Lienhart, Wolfgang Effelsberg
2001 ed.
Storage and Retrieval for Media Databases
Minerva M. Yeung, Chung-Sheng Li, Rainer Lienhart
2000 J jnl
Multim. Syst.
Rainer Lienhart, Wolfgang Effelsberg
2000 conf
Storage and Retrieval for Media Databases
Rainer Lienhart
2000 A conf
IEEE International Conference on Multimedia and Expo (III)
Axel Wernicke, Rainer Lienhart
2000 conf
DAGM-Symposium
Axel Wernicke, Rainer Lienhart
1999 A* conf
ACM Multimedia (2)
Rainer Lienhart
1999 conf
Storage and Retrieval for Image and Video Databases (SPIE)
Rainer Lienhart
1999 conf
ICMCS, Vol. 1
Rainer Lienhart, Silvia Pfeiffer, Wolfgang Effelsberg
1999 J jnl
Multim. Tools Appl.
Rainer Lienhart, Wolfgang Effelsberg, Ramesh C. Jain
1998 conf
GI Jahrestagung
Silvia Pfeiffer, Rainer Lienhart, Gerald Kühne, Wolfgang Effelsberg
1998
Rainer Lienhart
1998 conf
Storage and Retrieval for Image and Video Databases (SPIE)
Rainer Lienhart, Wolfgang Effelsberg, Ramesh C. Jain
1997 conf
DAGM-Symposium
Rainer Lienhart, Christoph Kuhmünch, Wolfgang Effelsberg
1997 conf
ICMCS
Rainer Lienhart, Christoph Kuhmünch, Wolfgang Effelsberg
1997 J jnl
Commun. ACM
Rainer Lienhart, Silvia Pfeiffer, Wolfgang Effelsberg
1996 J jnl
J. Vis. Commun. Image Represent.
Silvia Pfeiffer, Rainer Lienhart, Stephan Fischer, Wolfgang Effelsberg
1996 A* conf
ACM Multimedia
Rainer Lienhart
1996 conf
ICMCS
Rainer Lienhart, Silvia Pfeiffer, Wolfgang Effelsberg
1995 A* conf
ACM Multimedia
Stephan Fischer, Rainer Lienhart, Wolfgang Effelsberg
1995 A* conf
ACM Multimedia
Stephan Fischer, Rainer Lienhart, Wolfgang Effelsberg
redb/extractors/macho_extractors/macho_imports.py
← Index redb/extractors/macho_extractors/macho_imports.py python
import inspect
from datetime import datetime, timezone
from typing import Any

from redb.extractors.enum import Tag
from redb.extractors.macho_extractor import MachOExtractor
from redb.models.dataclasses import MachOImport


class MachOImportExtractor(MachOExtractor):

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        macho=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            elastic_index,
            known_benign,
            known_malicious,
            macho,
        )
        self.elastic_index = self.index_prefix + "-macho_imports"
        self.log.debug(inspect.currentframe().f_code.co_name)

    def tag(self):
        return Tag.MACHO_IMPORT.value

    def _extract_imports(self, arch_name=None):
        """Extract import information from the MachO binary for a specific architecture.

        Handles machofile v2026.2.4+ API where get_imported_functions() returns:
        Dict[str, List[Dict]] where each dict has {'name': str, 'sources': [str, ...]}
        """
        self.log.debug(inspect.currentframe().f_code.co_name)

        if not self.macho:
            return None

        try:
            # Get imported functions using API for specific architecture
            imported_functions = self.macho.get_imported_functions(arch=arch_name)
            if not imported_functions:
                return None

            # Keep the library→functions mapping (like PE does)
            library_names = []
            imports_with_mapping = []  # List of {library: [(name, source), ...]}

            for dylib_name, functions in imported_functions.items():
                # v2026.2.4+: dylib_name is already str, but handle bytes for compatibility
                if isinstance(dylib_name, bytes):
                    dylib_name = dylib_name.decode('utf-8', errors='replace')
                library_names.append(dylib_name)

                # Process function entries
                func_list = []
                for func_entry in functions:
                    # v2026.2.4+: func_entry is {'name': str, 'sources': [str, ...]}
                    if isinstance(func_entry, dict):
                        func_name = func_entry.get('name', '')
                        # Join sources if multiple, take first if single
                        sources = func_entry.get('sources', [])
                        import_source = sources[0] if sources else None
                        func_list.append((func_name, import_source))
                    else:
                        # Legacy format: func_entry is str or bytes
                        if isinstance(func_entry, bytes):
                            func_entry = func_entry.decode('utf-8', errors='replace')
                        func_list.append((func_entry, None))

                imports_with_mapping.append({dylib_name: func_list})

            # Count total functions
            total_functions = sum(len(list(d.values())[0]) for d in imports_with_mapping)

            # Create import dataclass with mapping preserved
            macho_import = MachOImport(
                macho_imports_total=total_functions,
                macho_import_libraryName=library_names if library_names else None,
                macho_import_functions=imports_with_mapping if imports_with_mapping else None
            )

            return macho_import

        except Exception as e:
            self.log.error(f"Error extracting MachO imports for arch {arch_name}: {e}")
            return None

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            # Get architectures (macho is already parsed in base class)
            architectures = self.macho.get_architectures()
            if len(architectures) > 1:
                # FAT binary - return list of imports for each architecture
                results = []
                for arch_name in architectures:
                    imports = self._extract_imports(arch_name)
                    if imports:
                        imports.arch_identifier = arch_name
                        results.append(imports)
                return results
            else:
                # Single architecture - return single result
                return self._extract_imports(architectures[0] if architectures else None)
        except Exception as e:
            self.log.error(f"Error extracting MachO imports: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            if not self.macho:
                return None

            # Get architectures (macho is already parsed in base class)
            try:
                architectures = self.macho.get_architectures()
                is_fat = len(architectures) > 1
            except Exception as e:
                self.log.error(f"Could not get architectures: {e}")
                return None

            # Flatten the data - one row per function import (like PE imports)
            data = []
            current_time = datetime.now(timezone.utc)

            # Loop through each architecture (1 for single, multiple for FAT)
            for arch_name in architectures:
                # Get architecture-specific sha256
                try:
                    arch_general_info = self.macho.get_general_info(arch=arch_name)
                    arch_header_raw = self.macho.get_macho_header(arch=arch_name)
                    arch_sha256 = arch_general_info.get('SHA256', self.sha256)
                    arch_cputype_raw = arch_header_raw.get('cputype', 0) if arch_header_raw else 0
                except Exception as e:
                    self.log.warning(f"Could not get arch-specific data for {arch_name}: {e}")
                    arch_sha256 = self.sha256
                    arch_cputype_raw = 0

                # Get imports for this architecture
                macho_import = self._extract_imports(arch_name)
                if not macho_import or not macho_import.macho_import_functions:
                    continue

                # Flatten to one row per (library, function) pair
                for lib_funcs in macho_import.macho_import_functions:
                    for lib, funcs in lib_funcs.items():
                        for func_name, import_source in funcs:
                            data.append([
                                arch_sha256,        # sha256 (arch-specific)
                                lib,                # library_name
                                func_name,          # function_name
                                import_source,      # import_source (chained_fixups, bind_opcodes, symtab)
                                current_time,       # analysis_date
                            ])

            column_names = [
                'sha256',
                'library_name', 'function_name', 'import_source',
                'analysis_date'
            ]

            if not data:
                return None

            column_type_names = [
                'FixedString(64)',
                'LowCardinality(String)', 'LowCardinality(String)', 'LowCardinality(Nullable(String))',
                'DateTime64(3, \'UTC\')'
            ]

            return (data, column_names, column_type_names)

        return None

    def get_clickhouse_table(self) -> str:
        return "redb_macho_imports"